mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08:00
vkd3d-shader/spriv: Only lookup resource symbols for UAVs in the ld_raw/ld_structured handler.
We don't need them for SRVs. Worse, if we're using a combined resource/sampler pair for the SRV, a separate resource symbol may not even exist. Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
This commit is contained in:
parent
76fd1388d8
commit
8438aacc3b
Notes:
Henri Verbeet
2024-11-06 23:01:27 +01:00
Approved-by: Elizabeth Figura (@zfigura) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1245
@ -8904,15 +8904,20 @@ static void spirv_compiler_emit_ld_raw_structured_srv_uav(struct spirv_compiler
|
||||
uint32_t base_coordinate_id, component_idx;
|
||||
uint32_t constituents[VKD3D_VEC4_SIZE];
|
||||
struct vkd3d_shader_image image;
|
||||
bool storage_buffer_uav = false;
|
||||
uint32_t indices[2];
|
||||
unsigned int i, j;
|
||||
SpvOp op;
|
||||
|
||||
resource = &src[instruction->src_count - 1];
|
||||
resource_symbol = spirv_compiler_find_resource(compiler, &resource->reg);
|
||||
|
||||
if (resource->reg.type == VKD3DSPR_UAV
|
||||
&& spirv_compiler_use_storage_buffer(compiler, &resource_symbol->info.resource))
|
||||
if (resource->reg.type == VKD3DSPR_UAV)
|
||||
{
|
||||
resource_symbol = spirv_compiler_find_resource(compiler, &resource->reg);
|
||||
storage_buffer_uav = spirv_compiler_use_storage_buffer(compiler, &resource_symbol->info.resource);
|
||||
}
|
||||
|
||||
if (storage_buffer_uav)
|
||||
{
|
||||
texel_type_id = vkd3d_spirv_get_type_id(builder, resource_symbol->info.resource.sampled_type, 1);
|
||||
ptr_type_id = vkd3d_spirv_get_op_type_pointer(builder, SpvStorageClassUniform, texel_type_id);
|
||||
|
Loading…
Reference in New Issue
Block a user