[Mesa-dev] [PATCH 2/3] uac/nir: add get_cache_policy() helper and use it
Samuel Pitoiset
samuel.pitoiset at gmail.com
Thu Nov 1 08:04:52 UTC 2018
On 11/1/18 1:09 AM, Dave Airlie wrote:
> On Tue, 30 Oct 2018 at 02:04, Samuel Pitoiset <samuel.pitoiset at gmail.com> wrote:
>>
>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
>> ---
>> src/amd/common/ac_nir_to_llvm.c | 38 ++++++++++++++++++++++-----------
>> 1 file changed, 26 insertions(+), 12 deletions(-)
>>
>> diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
>> index e5fbe003f5..736b726beb 100644
>> --- a/src/amd/common/ac_nir_to_llvm.c
>> +++ b/src/amd/common/ac_nir_to_llvm.c
>> @@ -1449,6 +1449,24 @@ static LLVMValueRef extract_vector_range(struct ac_llvm_context *ctx, LLVMValueR
>> }
>> }
>>
>> +static unsigned get_cache_policy(struct ac_nir_context *ctx,
>> + enum gl_access_qualifier access,
>> + bool may_store_unaligned)
>> +{
>> + unsigned cache_policy = 0;
>> +
>> + /* SI has a TC L1 bug causing corruption of 8bit/16bit stores. All
>> + * store opcodes not aligned to a dword are affected. The only way to
>> + * get unaligned stores is through shader images.
>> + */
>> + if (((may_store_unaligned && ctx->ac.chip_class == SI) ||
>> + access & (ACCESS_COHERENT | ACCESS_VOLATILE))) {
>> + cache_policy |= ac_glc;
>> + }
>> +
>> + return cache_policy;
>
> This comment mentions doing unaligned stores via shader images as a
> workaround, the next patch uses this path for shader images, it seems
> not entirely clear if it should apply to shader images or not.
This patch doesn't change anything, it just introduces a helper. The
next patch only sets the cache policy for shader buffer images, what's
unclear?
>
> Dave.
>
More information about the mesa-dev
mailing list