[Mesa-dev] [PATCH 1/2] i965: retype result of typed atomic operation to the same type as source
Ilia Mirkin
imirkin at alum.mit.edu
Mon Feb 22 22:04:45 UTC 2016
On Mon, Feb 22, 2016 at 3:53 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
> On Mon, Feb 22, 2016 at 3:52 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>> This fixes atomic exchange with a r32f image, as needed by
>> GL_OES_shader_atomic_exchange.
>
> Sorry, that should be GL_OES_shader_image_atomic of course.
>
>>
>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>> ---
>> src/mesa/drivers/dri/i965/brw_fs_surface_builder.cpp | 6 ++++--
>> 1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/mesa/drivers/dri/i965/brw_fs_surface_builder.cpp b/src/mesa/drivers/dri/i965/brw_fs_surface_builder.cpp
>> index 081dbad..e775cc0 100644
>> --- a/src/mesa/drivers/dri/i965/brw_fs_surface_builder.cpp
>> +++ b/src/mesa/drivers/dri/i965/brw_fs_surface_builder.cpp
>> @@ -156,8 +156,10 @@ namespace brw {
>> const fs_reg tmp = bld.vgrf(BRW_REGISTER_TYPE_UD, n);
>> bld.LOAD_PAYLOAD(tmp, srcs, n, 0);
>>
>> - return emit_send(bld, SHADER_OPCODE_TYPED_ATOMIC_LOGICAL,
>> - addr, tmp, surface, dims, op, rsize);
>> + return retype(
>> + emit_send(bld, SHADER_OPCODE_TYPED_ATOMIC_LOGICAL,
>> + addr, tmp, surface, dims, op, rsize),
>> + src0.type);
Actually I've been thinking a bit more about this... relying on
src0.type won't fly. The surface's mesa_format needs to be passed
through to emit_image_atomic, just like it is done for emit_image_load
and emit_image_store. And I need to fix up the vec4 emitter. Curro,
does that sound reasonable? Or should the retype be done at the
emit_image_atomic callsites?
-ilia
More information about the mesa-dev
mailing list