vkd3d-shader/hlsl: Ignore the 'groupshared' modifier for non-compute shaders.

This commit is contained in:
Shaun Ren
2025-05-13 18:17:26 -04:00
committed by Henri Verbeet
parent 4ede2f1365
commit f3dec58423
Notes: Henri Verbeet 2025-06-24 16:31:45 +02:00
Approved-by: Elizabeth Figura (@zfigura)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1553
2 changed files with 8 additions and 0 deletions

View File

@@ -2559,6 +2559,13 @@ static void declare_var(struct hlsl_ctx *ctx, struct parse_variable_def *v)
hlsl_error(ctx, &var->loc, VKD3D_SHADER_ERROR_HLSL_INVALID_MODIFIER, hlsl_error(ctx, &var->loc, VKD3D_SHADER_ERROR_HLSL_INVALID_MODIFIER,
"Variable '%s' is declared as both \"uniform\" and \"static\".", var->name); "Variable '%s' is declared as both \"uniform\" and \"static\".", var->name);
if ((modifiers & HLSL_STORAGE_GROUPSHARED) && ctx->profile->type != VKD3D_SHADER_TYPE_COMPUTE)
{
modifiers &= ~HLSL_STORAGE_GROUPSHARED;
hlsl_warning(ctx, &var->loc, VKD3D_SHADER_WARNING_HLSL_IGNORED_MODIFIER,
"Ignoring the 'groupshared' modifier in a non-compute shader.");
}
if (modifiers & HLSL_STORAGE_GROUPSHARED) if (modifiers & HLSL_STORAGE_GROUPSHARED)
hlsl_fixme(ctx, &var->loc, "Group shared variables."); hlsl_fixme(ctx, &var->loc, "Group shared variables.");

View File

@@ -183,6 +183,7 @@ enum vkd3d_shader_error
VKD3D_SHADER_WARNING_HLSL_NON_FINITE_RESULT = 5304, VKD3D_SHADER_WARNING_HLSL_NON_FINITE_RESULT = 5304,
VKD3D_SHADER_WARNING_HLSL_IGNORED_ATTRIBUTE = 5305, VKD3D_SHADER_WARNING_HLSL_IGNORED_ATTRIBUTE = 5305,
VKD3D_SHADER_WARNING_HLSL_IGNORED_DEFAULT_VALUE = 5306, VKD3D_SHADER_WARNING_HLSL_IGNORED_DEFAULT_VALUE = 5306,
VKD3D_SHADER_WARNING_HLSL_IGNORED_MODIFIER = 5307,
VKD3D_SHADER_ERROR_GLSL_INTERNAL = 6000, VKD3D_SHADER_ERROR_GLSL_INTERNAL = 6000,
VKD3D_SHADER_ERROR_GLSL_BINDING_NOT_FOUND = 6001, VKD3D_SHADER_ERROR_GLSL_BINDING_NOT_FOUND = 6001,