[Mesa-dev] [PATCH v2 06/41] ac/nir: fix 16-bit ssbo stores

Samuel Pitoiset samuel.pitoiset at gmail.com
Tue Feb 26 10:01:55 UTC 2019


Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>

On 2/18/19 2:23 PM, Rhys Perry wrote:
> I don't see a 16-bit version of tbuffer.store in IntrinsicsAMDGPU.td
> and simply changing "llvm.amdgcn.tbuffer.store.i32" to
> "llvm.amdgcn.tbuffer.store.i16" and removing the zext doesn't seem to
> work.
>
> On Mon, 18 Feb 2019 at 08:55, Samuel Pitoiset <samuel.pitoiset at gmail.com> wrote:
>> Does this fix anything know? There is a 16-bit version of tbuffer.store,
>> maybe we should use it?
>>
>> On 2/16/19 1:21 AM, Rhys Perry wrote:
>>> Signed-off-by: Rhys Perry <pendingchaos02 at gmail.com>
>>> ---
>>>    src/amd/common/ac_nir_to_llvm.c | 2 ++
>>>    1 file changed, 2 insertions(+)
>>>
>>> diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
>>> index 89a78b43c6f..b260142c177 100644
>>> --- a/src/amd/common/ac_nir_to_llvm.c
>>> +++ b/src/amd/common/ac_nir_to_llvm.c
>>> @@ -1586,6 +1586,8 @@ static void visit_store_ssbo(struct ac_nir_context *ctx,
>>>                } else if (num_bytes == 2) {
>>>                        store_name = "llvm.amdgcn.tbuffer.store.i32";
>>>                        data_type = ctx->ac.i32;
>>> +                     data = LLVMBuildBitCast(ctx->ac.builder, data, ctx->ac.i16, "");
>>> +                     data = LLVMBuildZExt(ctx->ac.builder, data, data_type, "");
>>>                        LLVMValueRef tbuffer_params[] = {
>>>                                data,
>>>                                rsrc,


More information about the mesa-dev mailing list