mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader/msl: Handle SV_SAMPLE_INDEX inputs.
This commit is contained in:
Notes:
Henri Verbeet
2025-06-05 16:18:57 +02:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1537
@@ -1074,9 +1074,19 @@ static void msl_generate_input_struct_declarations(struct msl_generator *gen)
|
||||
vkd3d_string_buffer_printf(buffer, "bool is_front_face [[front_facing]];\n");
|
||||
continue;
|
||||
|
||||
case VKD3D_SHADER_SV_SAMPLE_INDEX:
|
||||
if (type != VKD3D_SHADER_TYPE_PIXEL)
|
||||
msl_compiler_error(gen, VKD3D_SHADER_ERROR_MSL_INTERNAL,
|
||||
"Internal compiler error: Unhandled SV_SAMPLE_INDEX in shader type #%x.", type);
|
||||
msl_print_indent(gen->buffer, 1);
|
||||
vkd3d_string_buffer_printf(buffer, "uint sample_index [[sample_id]];\n");
|
||||
continue;
|
||||
|
||||
default:
|
||||
msl_compiler_error(gen, VKD3D_SHADER_ERROR_MSL_INTERNAL,
|
||||
"Internal compiler error: Unhandled system value %#x.", e->sysval_semantic);
|
||||
msl_print_indent(gen->buffer, 1);
|
||||
vkd3d_string_buffer_printf(buffer, "<unhandled sysval %#x>;\n", e->sysval_semantic);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1310,6 +1320,12 @@ static void msl_generate_entrypoint_prologue(struct msl_generator *gen)
|
||||
vkd3d_string_buffer_printf(buffer, " = uint4(input.is_front_face ? 0xffffffffu : 0u, 0, 0, 0)");
|
||||
break;
|
||||
|
||||
case VKD3D_SHADER_SV_SAMPLE_INDEX:
|
||||
msl_print_register_datatype(buffer, gen, VKD3D_DATA_UINT);
|
||||
msl_print_write_mask(buffer, e->mask);
|
||||
vkd3d_string_buffer_printf(buffer, " = uint4(input.sample_index, 0u, 0u, 0u)");
|
||||
break;
|
||||
|
||||
default:
|
||||
vkd3d_string_buffer_printf(buffer, " = <unhandled sysval %#x>", e->sysval_semantic);
|
||||
msl_compiler_error(gen, VKD3D_SHADER_ERROR_MSL_INTERNAL,
|
||||
|
@@ -167,7 +167,7 @@ float4 main(uint id : sv_sampleindex) : sv_target
|
||||
|
||||
[test]
|
||||
clear rtv 0 0.0 0.0 0.0 0.0
|
||||
todo(msl) draw quad
|
||||
draw quad
|
||||
probe (32, 32) rgba(3.75, 0.25, 0.5, 1.0)
|
||||
todo(msl) copy rtv 0 srv 0
|
||||
|
||||
|
Reference in New Issue
Block a user