From: Samuel Pitoiset Date: Tue, 19 Jun 2018 12:25:47 +0000 (+0200) Subject: radv: don't store the number of samples as log2 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=20170865db0d8d78f217ea1eaf49eff4a4c0bfc1;p=mesa.git radv: don't store the number of samples as log2 Needed for the following patch. Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen --- diff --git a/src/amd/vulkan/radv_nir_to_llvm.c b/src/amd/vulkan/radv_nir_to_llvm.c index 21f2e9d26ba..d45af9d0fc3 100644 --- a/src/amd/vulkan/radv_nir_to_llvm.c +++ b/src/amd/vulkan/radv_nir_to_llvm.c @@ -1648,9 +1648,14 @@ static LLVMValueRef load_sample_position(struct ac_shader_abi *abi, static LLVMValueRef load_sample_mask_in(struct ac_shader_abi *abi) { struct radv_shader_context *ctx = radv_shader_context_from_abi(abi); - uint8_t log2_ps_iter_samples = ctx->shader_info->info.ps.force_persample ? - ctx->options->key.fs.log2_num_samples : - ctx->options->key.fs.log2_ps_iter_samples; + uint8_t log2_ps_iter_samples; + + if (ctx->shader_info->info.ps.force_persample) { + log2_ps_iter_samples = + util_logbase2(ctx->options->key.fs.num_samples); + } else { + log2_ps_iter_samples = ctx->options->key.fs.log2_ps_iter_samples; + } /* The bit pattern matches that used by fixed function fragment * processing. */ diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index 70a8c63c926..54faddf5882 100644 --- a/src/amd/vulkan/radv_pipeline.c +++ b/src/amd/vulkan/radv_pipeline.c @@ -1868,7 +1868,7 @@ radv_generate_graphics_pipeline_key(struct radv_pipeline *pipeline, pCreateInfo->pMultisampleState->rasterizationSamples > 1) { uint32_t num_samples = pCreateInfo->pMultisampleState->rasterizationSamples; uint32_t ps_iter_samples = radv_pipeline_get_ps_iter_samples(pCreateInfo->pMultisampleState); - key.log2_num_samples = util_logbase2(num_samples); + key.num_samples = num_samples; key.log2_ps_iter_samples = util_logbase2(ps_iter_samples); } @@ -1912,7 +1912,7 @@ radv_fill_shader_keys(struct radv_shader_variant_key *keys, keys[MESA_SHADER_FRAGMENT].fs.is_int8 = key->is_int8; keys[MESA_SHADER_FRAGMENT].fs.is_int10 = key->is_int10; keys[MESA_SHADER_FRAGMENT].fs.log2_ps_iter_samples = key->log2_ps_iter_samples; - keys[MESA_SHADER_FRAGMENT].fs.log2_num_samples = key->log2_num_samples; + keys[MESA_SHADER_FRAGMENT].fs.num_samples = key->num_samples; } static void diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h index abaf2eb929a..27440da595e 100644 --- a/src/amd/vulkan/radv_private.h +++ b/src/amd/vulkan/radv_private.h @@ -361,7 +361,7 @@ struct radv_pipeline_key { uint32_t is_int8; uint32_t is_int10; uint8_t log2_ps_iter_samples; - uint8_t log2_num_samples; + uint8_t num_samples; uint32_t has_multiview_view_index : 1; uint32_t optimisations_disabled : 1; }; diff --git a/src/amd/vulkan/radv_shader.h b/src/amd/vulkan/radv_shader.h index e95bbfca894..7a35f9346da 100644 --- a/src/amd/vulkan/radv_shader.h +++ b/src/amd/vulkan/radv_shader.h @@ -95,7 +95,7 @@ struct radv_tcs_variant_key { struct radv_fs_variant_key { uint32_t col_format; uint8_t log2_ps_iter_samples; - uint8_t log2_num_samples; + uint8_t num_samples; uint32_t is_int8; uint32_t is_int10; };