[Mesa-dev] [PATCH 1/2] ac/nir: fix interp mode for nir_intrinsic_interp_var_at_sample

Samuel Pitoiset samuel.pitoiset at gmail.com
Wed Apr 18 12:36:54 UTC 2018



On 04/18/2018 12:19 PM, Nicolai Hähnle wrote:
> On 17.04.2018 15:08, Samuel Pitoiset wrote:
>> This fixes the following CTS tests:
>> dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.* 
>>
>>
>> This restores the previous behaviour, maybe the CTS tests
>> were wrong?
>>
>> Fixes: 22b116171f8 ("radv: fix interp at sample code.")
>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
>> ---
>>   src/amd/common/ac_nir_to_llvm.c | 3 +++
>>   1 file changed, 3 insertions(+)
>>
>> diff --git a/src/amd/common/ac_nir_to_llvm.c 
>> b/src/amd/common/ac_nir_to_llvm.c
>> index 45405d30fe8..b0631ad41a8 100644
>> --- a/src/amd/common/ac_nir_to_llvm.c
>> +++ b/src/amd/common/ac_nir_to_llvm.c
>> @@ -2710,6 +2710,9 @@ static LLVMValueRef visit_interp(struct 
>> ac_nir_context *ctx,
>>           location = INTERP_CENTROID;
>>           break;
>>       case nir_intrinsic_interp_var_at_sample:
>> +        location = INTERP_SAMPLE;
>> +        src0 = get_src(ctx, instr->src[0]);
>> +        break;
> 
> This makes no sense. Consider the code below; it will compute src_c{0,1} 
> in the nir_intrinsic_interp_var_at_sample case, but by setting location 
> == INTERP_SAMPLE, those values will never actually be used.
> 
> Is it possible that the test uses sample rate shading, and the sample 
> number passed into the intrinsic coincides with the sample number of the 
> PS invocation?

Right, that makes no sense actually...

Yes, sample rate shading is enabled but I don't know if the sample 
number coincides.

> 
> Cheers,
> Nicolai
> 
> 
>>       case nir_intrinsic_interp_var_at_offset:
>>           location = INTERP_CENTER;
>>           src0 = get_src(ctx, instr->src[0]);
>>
> 
> 


More information about the mesa-dev mailing list