mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader: Factor out a vsir_program_get_parameter() helper.
This commit is contained in:
committed by
Henri Verbeet
parent
6b58b6f261
commit
f6dd6d52b3
Notes:
Henri Verbeet
2024-07-23 21:18:54 +02:00
Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/956
@@ -105,6 +105,18 @@ void vsir_program_cleanup(struct vsir_program *program)
|
||||
shader_signature_cleanup(&program->patch_constant_signature);
|
||||
}
|
||||
|
||||
const struct vkd3d_shader_parameter1 *vsir_program_get_parameter(
|
||||
const struct vsir_program *program, enum vkd3d_shader_parameter_name name)
|
||||
{
|
||||
for (unsigned int i = 0; i < program->parameter_count; ++i)
|
||||
{
|
||||
if (program->parameters[i].name == name)
|
||||
return &program->parameters[i];
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline bool shader_register_is_phase_instance_id(const struct vkd3d_shader_register *reg)
|
||||
{
|
||||
return reg->type == VKD3DSPR_FORKINSTID || reg->type == VKD3DSPR_JOININSTID;
|
||||
@@ -5541,17 +5553,8 @@ static enum vkd3d_result vsir_program_insert_alpha_test(struct vsir_program *pro
|
||||
|| !(program->output_signature.elements[colour_signature_idx].mask & VKD3DSP_WRITEMASK_3))
|
||||
return VKD3D_OK;
|
||||
|
||||
for (unsigned int i = 0; i < program->parameter_count; ++i)
|
||||
{
|
||||
const struct vkd3d_shader_parameter1 *parameter = &program->parameters[i];
|
||||
|
||||
if (parameter->name == VKD3D_SHADER_PARAMETER_NAME_ALPHA_TEST_FUNC)
|
||||
func = parameter;
|
||||
else if (parameter->name == VKD3D_SHADER_PARAMETER_NAME_ALPHA_TEST_REF)
|
||||
ref = parameter;
|
||||
}
|
||||
|
||||
if (!func || !ref)
|
||||
if (!(func = vsir_program_get_parameter(program, VKD3D_SHADER_PARAMETER_NAME_ALPHA_TEST_FUNC))
|
||||
|| !(ref = vsir_program_get_parameter(program, VKD3D_SHADER_PARAMETER_NAME_ALPHA_TEST_REF)))
|
||||
return VKD3D_OK;
|
||||
|
||||
if (func->type != VKD3D_SHADER_PARAMETER_TYPE_IMMEDIATE_CONSTANT)
|
||||
|
||||
Reference in New Issue
Block a user