mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader/ir: Allow controlling point sprite through a parameter.
This commit is contained in:
committed by
Henri Verbeet
parent
8a3fe9cd1e
commit
a492d64fef
Notes:
Henri Verbeet
2024-10-22 20:53:34 +02:00
Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1188
@@ -3252,6 +3252,9 @@ static bool spirv_compiler_get_register_name(char *buffer, unsigned int buffer_s
|
||||
case VKD3DSPR_WAVELANEINDEX:
|
||||
snprintf(buffer, buffer_size, "vWaveLaneIndex");
|
||||
break;
|
||||
case VKD3DSPR_POINT_COORD:
|
||||
snprintf(buffer, buffer_size, "vPointCoord");
|
||||
break;
|
||||
default:
|
||||
FIXME("Unhandled register %#x.\n", reg->type);
|
||||
snprintf(buffer, buffer_size, "unrecognized_%#x", reg->type);
|
||||
@@ -4886,6 +4889,8 @@ vkd3d_register_builtins[] =
|
||||
|
||||
{VKD3DSPR_TESSCOORD, {VKD3D_SHADER_COMPONENT_FLOAT, 3, SpvBuiltInTessCoord}},
|
||||
|
||||
{VKD3DSPR_POINT_COORD, {VKD3D_SHADER_COMPONENT_FLOAT, 2, SpvBuiltInPointCoord}},
|
||||
|
||||
{VKD3DSPR_COVERAGE, {VKD3D_SHADER_COMPONENT_UINT, 1, SpvBuiltInSampleMask, NULL, 1}},
|
||||
{VKD3DSPR_SAMPLEMASK, {VKD3D_SHADER_COMPONENT_UINT, 1, SpvBuiltInSampleMask, NULL, 1}},
|
||||
|
||||
@@ -10596,6 +10601,14 @@ static void spirv_compiler_emit_io_declarations(struct spirv_compiler *compiler)
|
||||
dst.reg.idx[0].offset = VSIR_RASTOUT_POINT_SIZE;
|
||||
spirv_compiler_emit_output_register(compiler, &dst);
|
||||
}
|
||||
|
||||
if (compiler->program->has_point_coord)
|
||||
{
|
||||
struct vkd3d_shader_dst_param dst;
|
||||
|
||||
vsir_dst_param_init(&dst, VKD3DSPR_POINT_COORD, VKD3D_DATA_FLOAT, 0);
|
||||
spirv_compiler_emit_input_register(compiler, &dst);
|
||||
}
|
||||
}
|
||||
|
||||
static void spirv_compiler_emit_descriptor_declarations(struct spirv_compiler *compiler)
|
||||
|
Reference in New Issue
Block a user