mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-03 11:08:17 +02:00
radv: track cooperative matrix robustness
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Georg Lehmann <dadschoorse@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41653>
This commit is contained in:
parent
b1429caab3
commit
0cdb7594d7
3 changed files with 11 additions and 2 deletions
|
|
@ -1169,6 +1169,7 @@ radv_device_init_compiler_info(struct radv_device *device)
|
|||
.force_64_byte_sampled_image = pdev->force_64_byte_sampled_image,
|
||||
.robust_buffer_access = pdev->use_llvm && (device->vk.enabled_features.robustBufferAccess2 ||
|
||||
device->vk.enabled_features.robustBufferAccess),
|
||||
.coop_matrix_robust_buffer_access = device->vk.enabled_features.cooperativeMatrixRobustBufferAccess,
|
||||
.mitigate_smem_oob = pdev->info.compiler_info.has_smem_oob_access_bug &&
|
||||
!(instance->debug_flags & RADV_DEBUG_NO_SMEM_MITIGATION),
|
||||
.mitigate_smem_with_null_prt =
|
||||
|
|
|
|||
|
|
@ -143,6 +143,11 @@ radv_pipeline_get_shader_key(const struct radv_compiler_info *compiler_info,
|
|||
|
||||
radv_set_stage_key_robustness(&rs, s, &key);
|
||||
|
||||
if (compiler_info->key.coop_matrix_robust_buffer_access) {
|
||||
key.coop_matrix_storage_robustness = rs.storage_buffers != VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED;
|
||||
key.coop_matrix_uniform_robustness = rs.uniform_buffers != VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED;
|
||||
}
|
||||
|
||||
const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo *const subgroup_size =
|
||||
vk_find_struct_const(stage->pNext, PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO);
|
||||
|
||||
|
|
|
|||
|
|
@ -81,6 +81,8 @@ struct radv_shader_stage_key {
|
|||
uint8_t storage_robustness2 : 1;
|
||||
uint8_t uniform_robustness2 : 1;
|
||||
uint8_t vertex_robustness1 : 1;
|
||||
uint8_t coop_matrix_storage_robustness : 1;
|
||||
uint8_t coop_matrix_uniform_robustness : 1;
|
||||
|
||||
uint8_t optimisations_disabled : 1;
|
||||
uint8_t keep_statistic_info : 1;
|
||||
|
|
@ -97,7 +99,7 @@ struct radv_shader_stage_key {
|
|||
/* Whether the shader is used with indirect pipeline binds. */
|
||||
uint8_t indirect_bindable : 1;
|
||||
|
||||
uint32_t reserved : 17;
|
||||
uint32_t reserved : 15;
|
||||
};
|
||||
|
||||
struct radv_ps_epilog_key {
|
||||
|
|
@ -530,6 +532,7 @@ struct radv_compiler_info {
|
|||
uint32_t use_fmask : 1;
|
||||
uint32_t force_64_byte_sampled_image : 1;
|
||||
uint32_t robust_buffer_access : 1; /* Only used by LLVM. */
|
||||
uint32_t coop_matrix_robust_buffer_access : 1;
|
||||
uint32_t mitigate_smem_oob : 1;
|
||||
uint32_t mitigate_smem_with_null_prt : 1;
|
||||
uint32_t bvh8 : 1;
|
||||
|
|
@ -548,7 +551,7 @@ struct radv_compiler_info {
|
|||
uint32_t tex_non_uniform : 1;
|
||||
uint32_t lower_terminate_to_discard : 1;
|
||||
uint32_t no_implicit_varying_subgroup_size : 1;
|
||||
uint32_t padding : 30;
|
||||
uint32_t padding : 29;
|
||||
|
||||
int32_t force_aniso;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue