mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
libs/vkd3d-shader: Export shader scan function.
For UAV counters support in libvkd3d.
This commit is contained in:
parent
e11b5fd566
commit
5bdc928908
@ -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 */
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user