mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader/spirv: Do not require VKD3D_SHADER_BINDING_FLAG_IMAGE for sampler descriptors.
This commit is contained in:
Notes:
Henri Verbeet
2025-06-23 20:18:40 +02:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1579
@@ -3522,8 +3522,12 @@ static struct vkd3d_shader_descriptor_binding spirv_compiler_get_descriptor_bind
|
|||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
resource_type_flag = resource_type == VKD3D_SHADER_RESOURCE_BUFFER
|
if (resource_type == VKD3D_SHADER_RESOURCE_NONE)
|
||||||
? VKD3D_SHADER_BINDING_FLAG_BUFFER : VKD3D_SHADER_BINDING_FLAG_IMAGE;
|
resource_type_flag = 0;
|
||||||
|
else if (resource_type == VKD3D_SHADER_RESOURCE_BUFFER)
|
||||||
|
resource_type_flag = VKD3D_SHADER_BINDING_FLAG_BUFFER;
|
||||||
|
else
|
||||||
|
resource_type_flag = VKD3D_SHADER_BINDING_FLAG_IMAGE;
|
||||||
|
|
||||||
if (is_uav_counter)
|
if (is_uav_counter)
|
||||||
{
|
{
|
||||||
@@ -3567,7 +3571,7 @@ static struct vkd3d_shader_descriptor_binding spirv_compiler_get_descriptor_bind
|
|||||||
{
|
{
|
||||||
const struct vkd3d_shader_resource_binding *current = &shader_interface->bindings[i];
|
const struct vkd3d_shader_resource_binding *current = &shader_interface->bindings[i];
|
||||||
|
|
||||||
if (!(current->flags & resource_type_flag))
|
if ((current->flags & resource_type_flag) != resource_type_flag)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!spirv_compiler_check_shader_visibility(compiler, current->shader_visibility))
|
if (!spirv_compiler_check_shader_visibility(compiler, current->shader_visibility))
|
||||||
|
@@ -438,7 +438,7 @@ static bool compile_d3d_code(struct vulkan_shader_runner *runner,
|
|||||||
binding->register_space = 0;
|
binding->register_space = 0;
|
||||||
binding->register_index = runner->r.samplers[i].slot;
|
binding->register_index = runner->r.samplers[i].slot;
|
||||||
binding->shader_visibility = VKD3D_SHADER_VISIBILITY_ALL;
|
binding->shader_visibility = VKD3D_SHADER_VISIBILITY_ALL;
|
||||||
binding->flags = VKD3D_SHADER_BINDING_FLAG_IMAGE;
|
binding->flags = 0;
|
||||||
binding->binding.set = 0;
|
binding->binding.set = 0;
|
||||||
binding->binding.binding = runner->samplers[i].binding;
|
binding->binding.binding = runner->samplers[i].binding;
|
||||||
binding->binding.count = 1;
|
binding->binding.count = 1;
|
||||||
|
Reference in New Issue
Block a user