vkd3d: Add binding for uav counter views.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
This commit is contained in:
parent
b16276f9d6
commit
949e38e0b3
|
@ -4827,8 +4827,9 @@ unsigned int d3d12_descriptor_heap_set_index_from_binding(const struct vkd3d_bin
|
|||
set->binding_flag & VKD3D_SHADER_BINDING_FLAG_BUFFER);
|
||||
|
||||
case D3D12_DESCRIPTOR_RANGE_TYPE_UAV:
|
||||
return d3d12_descriptor_heap_uav_set_index(
|
||||
set->binding_flag & VKD3D_SHADER_BINDING_FLAG_BUFFER);
|
||||
return set->binding_flag & VKD3D_SHADER_BINDING_FLAG_COUNTER
|
||||
? d3d12_descriptor_heap_uav_counter_set_index()
|
||||
: d3d12_descriptor_heap_uav_set_index(set->binding_flag & VKD3D_SHADER_BINDING_FLAG_BUFFER);
|
||||
|
||||
default:
|
||||
WARN("Unhandled descriptor range type %d.\n", set->range_type);
|
||||
|
|
|
@ -3228,7 +3228,7 @@ static HRESULT vkd3d_bindless_state_add_binding(struct vkd3d_bindless_state *bin
|
|||
VkResult vr;
|
||||
|
||||
set_info->vk_descriptor_type = vk_descriptor_type_from_d3d12_range_type(bindless_state,
|
||||
range_type, binding_flag & VKD3D_SHADER_BINDING_FLAG_BUFFER);
|
||||
range_type, !!(binding_flag & (VKD3D_SHADER_BINDING_FLAG_BUFFER | VKD3D_SHADER_BINDING_FLAG_COUNTER)));
|
||||
set_info->heap_type = d3d12_descriptor_heap_type_from_range_type(range_type);
|
||||
set_info->range_type = range_type;
|
||||
set_info->binding_flag = binding_flag;
|
||||
|
@ -3350,6 +3350,13 @@ HRESULT vkd3d_bindless_state_init(struct vkd3d_bindless_state *bindless_state,
|
|||
FAILED(hr = vkd3d_bindless_state_add_binding(bindless_state, device,
|
||||
D3D12_DESCRIPTOR_RANGE_TYPE_UAV, VKD3D_SHADER_BINDING_FLAG_IMAGE)))
|
||||
goto fail;
|
||||
|
||||
if (!(bindless_state->flags & VKD3D_BINDLESS_UAV_COUNTER))
|
||||
{
|
||||
if (FAILED(hr = vkd3d_bindless_state_add_binding(bindless_state, device,
|
||||
D3D12_DESCRIPTOR_RANGE_TYPE_UAV, VKD3D_SHADER_BINDING_FLAG_COUNTER)))
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
|
|
|
@ -58,7 +58,7 @@
|
|||
#define VKD3D_MAX_SHADER_STAGES 5u
|
||||
#define VKD3D_MAX_VK_SYNC_OBJECTS 4u
|
||||
|
||||
#define VKD3D_MAX_DESCRIPTOR_SETS 9u
|
||||
#define VKD3D_MAX_DESCRIPTOR_SETS 10u
|
||||
#define VKD3D_MAX_BINDLESS_DESCRIPTOR_SETS 6u
|
||||
|
||||
#define VKD3D_PIPELINE_BIND_POINT_COUNT 2u
|
||||
|
@ -732,6 +732,11 @@ static inline unsigned int d3d12_descriptor_heap_uav_set_index(bool is_buffer)
|
|||
return 3 + (is_buffer ? 0 : 1);
|
||||
}
|
||||
|
||||
static inline unsigned int d3d12_descriptor_heap_uav_counter_set_index()
|
||||
{
|
||||
return 5;
|
||||
}
|
||||
|
||||
static inline uint32_t d3d12_desc_heap_offset(const struct d3d12_desc *dst)
|
||||
{
|
||||
return dst->heap_offset;
|
||||
|
|
Loading…
Reference in New Issue