nvk: Plumb the whole vk_pipeline_robustness_state through to nvk_ubo/ssbo_addr_format

Fixes: c9eac89da8 ("nvk: Advertise VK_EXT_robustness2")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30663>
This commit is contained in:
Faith Ekstrand 2024-08-14 10:56:40 -05:00 committed by Marge Bot
parent 6ae401aa86
commit 8445190663
3 changed files with 12 additions and 12 deletions

View file

@ -1558,8 +1558,8 @@ nvk_nir_lower_descriptors(nir_shader *nir,
rs->storage_buffers != VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT ||
rs->uniform_buffers != VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT ||
rs->images != VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT,
.ssbo_addr_format = nvk_ssbo_addr_format(pdev, rs->storage_buffers),
.ubo_addr_format = nvk_ubo_addr_format(pdev, rs->uniform_buffers),
.ssbo_addr_format = nvk_ssbo_addr_format(pdev, rs),
.ubo_addr_format = nvk_ubo_addr_format(pdev, rs),
};
assert(set_layout_count <= NVK_MAX_SETS);

View file

@ -116,12 +116,12 @@ nvk_get_nir_options(struct vk_physical_device *vk_pdev,
nir_address_format
nvk_ubo_addr_format(const struct nvk_physical_device *pdev,
VkPipelineRobustnessBufferBehaviorEXT robustness)
const struct vk_pipeline_robustness_state *rs)
{
if (nvk_use_bindless_cbuf(&pdev->info)) {
return nir_address_format_vec2_index_32bit_offset;
} else {
switch (robustness) {
switch (rs->uniform_buffers) {
case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT:
return nir_address_format_64bit_global_32bit_offset;
case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT:
@ -135,9 +135,9 @@ nvk_ubo_addr_format(const struct nvk_physical_device *pdev,
nir_address_format
nvk_ssbo_addr_format(const struct nvk_physical_device *pdev,
VkPipelineRobustnessBufferBehaviorEXT robustness)
const struct vk_pipeline_robustness_state *rs)
{
switch (robustness) {
switch (rs->storage_buffers) {
case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT:
return nir_address_format_64bit_global_32bit_offset;
case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT:
@ -157,9 +157,9 @@ nvk_get_spirv_options(struct vk_physical_device *vk_pdev,
container_of(vk_pdev, struct nvk_physical_device, vk);
return (struct spirv_to_nir_options) {
.ssbo_addr_format = nvk_ssbo_addr_format(pdev, rs->storage_buffers),
.ssbo_addr_format = nvk_ssbo_addr_format(pdev, rs),
.phys_ssbo_addr_format = nir_address_format_64bit_global,
.ubo_addr_format = nvk_ubo_addr_format(pdev, rs->uniform_buffers),
.ubo_addr_format = nvk_ubo_addr_format(pdev, rs),
.shared_addr_format = nir_address_format_32bit_offset,
.min_ssbo_alignment = NVK_MIN_SSBO_ALIGNMENT,
.min_ubo_alignment = nvk_min_cbuf_alignment(&pdev->info),
@ -465,9 +465,9 @@ nvk_lower_nir(struct nvk_device *dev, nir_shader *nir,
NIR_PASS(_, nir, nir_lower_explicit_io, nir_var_mem_global,
nir_address_format_64bit_global);
NIR_PASS(_, nir, nir_lower_explicit_io, nir_var_mem_ssbo,
nvk_ssbo_addr_format(pdev, rs->storage_buffers));
nvk_ssbo_addr_format(pdev, rs));
NIR_PASS(_, nir, nir_lower_explicit_io, nir_var_mem_ubo,
nvk_ubo_addr_format(pdev, rs->uniform_buffers));
nvk_ubo_addr_format(pdev, rs));
NIR_PASS(_, nir, nir_shader_intrinsics_pass,
lower_load_intrinsic, nir_metadata_none, NULL);

View file

@ -102,10 +102,10 @@ nvk_physical_device_compiler_flags(const struct nvk_physical_device *pdev);
nir_address_format
nvk_ubo_addr_format(const struct nvk_physical_device *pdev,
VkPipelineRobustnessBufferBehaviorEXT robustness);
const struct vk_pipeline_robustness_state *rs);
nir_address_format
nvk_ssbo_addr_format(const struct nvk_physical_device *pdev,
VkPipelineRobustnessBufferBehaviorEXT robustness);
const struct vk_pipeline_robustness_state *rs);
bool
nvk_nir_lower_descriptors(nir_shader *nir,