vkd3d-shader: Implement shader model 1.0-1.3 texture projection.

This commit is contained in:
Elizabeth Figura
2025-08-09 15:33:46 -05:00
committed by Henri Verbeet
parent 44c80c60b8
commit c50210f230
Notes: Henri Verbeet 2025-11-20 18:37:00 +01:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1814
9 changed files with 209 additions and 9 deletions

View File

@@ -366,7 +366,7 @@ static bool compile_d3d_code(struct vulkan_shader_runner *runner,
struct vkd3d_shader_varying_map varying_map[12];
struct vkd3d_shader_resource_binding *binding;
struct vkd3d_shader_compile_option options[2];
struct vkd3d_shader_parameter1 parameters[40];
struct vkd3d_shader_parameter1 parameters[41];
unsigned int i;
char *messages;
int ret;
@@ -609,6 +609,11 @@ static bool compile_d3d_code(struct vulkan_shader_runner *runner,
parameters[34 + i].u.immediate_constant.u.f32 = runner->r.bump[i].luminance_offset;
}
parameters[40].name = VKD3D_SHADER_PARAMETER_NAME_PROJECTED_TEXTURE_MASK;
parameters[40].type = VKD3D_SHADER_PARAMETER_TYPE_IMMEDIATE_CONSTANT;
parameters[40].data_type = VKD3D_SHADER_PARAMETER_DATA_TYPE_UINT32;
parameters[40].u.immediate_constant.u.u32 = runner->r.projected_texture_mask;
parameter_info.parameter_count = ARRAY_SIZE(parameters);
parameter_info.parameters = parameters;