nvk: Limit shader stages to supported stages
Fixes: c7c73d6d17 ("nvk: Enable subgroups features")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26382>
This commit is contained in:
committed by
Marge Bot
parent
6f9be9a2a0
commit
e93935dd04
@@ -67,6 +67,14 @@ pipe_shader_type_from_mesa(gl_shader_stage stage)
|
||||
VkShaderStageFlags
|
||||
nvk_nak_stages(const struct nv_device_info *info)
|
||||
{
|
||||
const VkShaderStageFlags all =
|
||||
VK_SHADER_STAGE_VERTEX_BIT |
|
||||
VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT |
|
||||
VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT |
|
||||
VK_SHADER_STAGE_GEOMETRY_BIT |
|
||||
VK_SHADER_STAGE_FRAGMENT_BIT |
|
||||
VK_SHADER_STAGE_COMPUTE_BIT;
|
||||
|
||||
const struct debug_control flags[] = {
|
||||
{ "vs", BITFIELD64_BIT(MESA_SHADER_VERTEX) },
|
||||
{ "tcs", BITFIELD64_BIT(MESA_SHADER_TESS_CTRL) },
|
||||
@@ -74,13 +82,13 @@ nvk_nak_stages(const struct nv_device_info *info)
|
||||
{ "gs", BITFIELD64_BIT(MESA_SHADER_GEOMETRY) },
|
||||
{ "fs", BITFIELD64_BIT(MESA_SHADER_FRAGMENT) },
|
||||
{ "cs", BITFIELD64_BIT(MESA_SHADER_COMPUTE) },
|
||||
{ "all", ~0 },
|
||||
{ "all", all },
|
||||
{ NULL, 0 },
|
||||
};
|
||||
|
||||
const char *env_str = getenv("NVK_USE_NAK");
|
||||
if (env_str == NULL)
|
||||
return info->cls_eng3d >= TURING_A ? ~0 : 0;
|
||||
return info->cls_eng3d >= TURING_A ? all : 0;
|
||||
else
|
||||
return parse_debug_string(env_str, flags);
|
||||
}
|
||||
@@ -88,7 +96,7 @@ nvk_nak_stages(const struct nv_device_info *info)
|
||||
static bool
|
||||
use_nak(const struct nvk_physical_device *pdev, gl_shader_stage stage)
|
||||
{
|
||||
return nvk_nak_stages(&pdev->info) & BITFIELD64_BIT(stage);
|
||||
return nvk_nak_stages(&pdev->info) & mesa_to_vk_shader_stage(stage);
|
||||
}
|
||||
|
||||
uint64_t
|
||||
|
||||
Reference in New Issue
Block a user