libs/vkd3d-shader: Export shader scan function.

For UAV counters support in libvkd3d.
This commit is contained in:
Józef Kucia 2017-09-01 11:27:58 +02:00
parent e11b5fd566
commit 5bdc928908
3 changed files with 13 additions and 13 deletions

View File

@ -105,6 +105,17 @@ HRESULT vkd3d_shader_parse_root_signature(const struct vkd3d_shader_code *dxbc,
D3D12_ROOT_SIGNATURE_DESC *root_signature);
void vkd3d_shader_free_root_signature(D3D12_ROOT_SIGNATURE_DESC *root_signature);
#define VKD3D_SHADER_MAX_UNORDERED_ACCESS_VIEWS 8
struct vkd3d_shader_scan_info
{
unsigned int uav_read_mask : VKD3D_SHADER_MAX_UNORDERED_ACCESS_VIEWS;
unsigned int uav_counter_mask : VKD3D_SHADER_MAX_UNORDERED_ACCESS_VIEWS;
};
HRESULT vkd3d_shader_scan_dxbc(const struct vkd3d_shader_code *dxbc,
struct vkd3d_shader_scan_info *scan_info);
#ifdef __cplusplus
}
#endif /* __cplusplus */

View File

@ -120,7 +120,7 @@ static bool vkd3d_shader_instruction_is_uav_read(const struct vkd3d_shader_instr
static void vkd3d_shader_scan_record_uav_read(struct vkd3d_shader_scan_info *scan_info,
const struct vkd3d_shader_register *reg)
{
assert(reg->idx[0].offset < MAX_UNORDERED_ACCESS_VIEWS);
assert(reg->idx[0].offset < VKD3D_SHADER_MAX_UNORDERED_ACCESS_VIEWS);
scan_info->uav_read_mask |= 1u << reg->idx[0].offset;
}
@ -134,7 +134,7 @@ static bool vkd3d_shader_instruction_is_uav_counter(const struct vkd3d_shader_in
static void vkd3d_shader_scan_record_uav_counter(struct vkd3d_shader_scan_info *scan_info,
const struct vkd3d_shader_register *reg)
{
assert(reg->idx[0].offset < MAX_UNORDERED_ACCESS_VIEWS);
assert(reg->idx[0].offset < VKD3D_SHADER_MAX_UNORDERED_ACCESS_VIEWS);
scan_info->uav_counter_mask |= 1u << reg->idx[0].offset;
}

View File

@ -819,17 +819,6 @@ struct vkd3d_shader_signature_element *shader_find_signature_element(const struc
const char *semantic_name, unsigned int semantic_idx, unsigned int stream_idx) DECLSPEC_HIDDEN;
void free_shader_desc(struct vkd3d_shader_desc *desc) DECLSPEC_HIDDEN;
#define MAX_UNORDERED_ACCESS_VIEWS 8
struct vkd3d_shader_scan_info
{
unsigned int uav_read_mask : MAX_UNORDERED_ACCESS_VIEWS;
unsigned int uav_counter_mask : MAX_UNORDERED_ACCESS_VIEWS;
};
HRESULT vkd3d_shader_scan_dxbc(const struct vkd3d_shader_code *dxbc,
struct vkd3d_shader_scan_info *scan_info) DECLSPEC_HIDDEN;
struct vkd3d_dxbc_compiler;
struct vkd3d_dxbc_compiler *vkd3d_dxbc_compiler_create(const struct vkd3d_shader_version *shader_version,