mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-23 06:50:11 +01:00
nvk: Enable subgroups features
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998>
This commit is contained in:
parent
4bd9c99ca0
commit
c7c73d6d17
3 changed files with 15 additions and 4 deletions
|
|
@ -533,6 +533,12 @@ nvk_get_device_properties(const struct nvk_instance *instance,
|
|||
.sparseResidencyNonResidentStrict = true,
|
||||
|
||||
/* Vulkan 1.1 properties */
|
||||
.subgroupSize = 32,
|
||||
.subgroupSupportedStages = nvk_nak_stages(),
|
||||
.subgroupSupportedOperations = VK_SUBGROUP_FEATURE_BALLOT_BIT |
|
||||
VK_SUBGROUP_FEATURE_BASIC_BIT |
|
||||
VK_SUBGROUP_FEATURE_VOTE_BIT,
|
||||
.subgroupQuadOperationsInAllStages = false,
|
||||
.pointClippingBehavior = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
|
||||
.maxMultiviewViewCount = NVK_MAX_MULTIVIEW_VIEW_COUNT,
|
||||
.maxMultiviewInstanceIndex = UINT32_MAX,
|
||||
|
|
|
|||
|
|
@ -79,8 +79,8 @@ get_prog_optimize(void)
|
|||
return debug_get_num_option("NV50_PROG_OPTIMIZE", 3);
|
||||
}
|
||||
|
||||
static uint32_t
|
||||
get_nak_stages(void)
|
||||
VkShaderStageFlags
|
||||
nvk_nak_stages(void)
|
||||
{
|
||||
const struct debug_control flags[] = {
|
||||
{ "vs", BITFIELD64_BIT(MESA_SHADER_VERTEX) },
|
||||
|
|
@ -99,7 +99,7 @@ get_nak_stages(void)
|
|||
static bool
|
||||
use_nak(gl_shader_stage stage)
|
||||
{
|
||||
return get_nak_stages() & BITFIELD64_BIT(stage);
|
||||
return nvk_nak_stages() & BITFIELD64_BIT(stage);
|
||||
}
|
||||
|
||||
uint64_t
|
||||
|
|
@ -107,7 +107,7 @@ nvk_physical_device_compiler_flags(const struct nvk_physical_device *pdev)
|
|||
{
|
||||
uint64_t prog_debug = get_prog_debug();
|
||||
uint64_t prog_optimize = get_prog_optimize();
|
||||
uint64_t nak_stages = get_nak_stages();
|
||||
uint64_t nak_stages = nvk_nak_stages();
|
||||
uint64_t nak_flags = nak_debug_flags(pdev->nak);
|
||||
|
||||
assert(prog_debug <= UINT8_MAX);
|
||||
|
|
@ -153,6 +153,9 @@ nvk_physical_device_spirv_options(const struct nvk_physical_device *pdev,
|
|||
.runtime_descriptor_array = true,
|
||||
.shader_clock = true,
|
||||
.shader_viewport_index_layer = true,
|
||||
.subgroup_ballot = true,
|
||||
.subgroup_basic = true,
|
||||
.subgroup_vote = true,
|
||||
.tessellation = true,
|
||||
.transform_feedback = true,
|
||||
.variable_pointers = true,
|
||||
|
|
|
|||
|
|
@ -96,6 +96,8 @@ nvk_shader_address(const struct nvk_shader *shader)
|
|||
return shader->upload_addr + shader->upload_padding;
|
||||
}
|
||||
|
||||
VkShaderStageFlags nvk_nak_stages(void);
|
||||
|
||||
uint64_t
|
||||
nvk_physical_device_compiler_flags(const struct nvk_physical_device *pdev);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue