[Mesa-dev] [PATCH v5 00/70] ARB_shader_storage_buffer_object (mesa, i965)
Kristian Høgsberg
krh at bitplanet.net
Fri Sep 18 16:56:08 PDT 2015
On Thu, Sep 10, 2015 at 03:35:16PM +0200, Iago Toral Quiroga wrote:
> Hi,
>
> this is the latest version of the ARB_shader_storage_buffer_object
> implementation. A good part of the frontend bits for this are already in
> master, but this adds some more missing pieces, specifically std430 and
> memory qualifiers. Additionally, this provides the i965 implementation.
I've gone through all patches in the series and I replied to patches
where I had comments. Overall, the series look good and with the
comments addressed, I'm ready to give my Reviewed-by for the series.
I want to take a closer look at the atomics lowering in patches 49+,
but I'm done for today. Base on the quick look-through I did, I don't
expect to find any showstoppers there.
Here's a summary of what I found:
[PATCH v5 01/70] mesa: set MAX_SHADER_STORAGE_BUFFERS to 15.
Update limit to 16 and drop the comment
[PATCH v5 02/70] i965: Use 16-byte offset alignment for shader storage buffers
ctx->Const.ShaderStorageBufferOffsetAlignment should be 64
[PATCH v5 23/70] glsl: refactor parser processing of an interface block definition
Clarify that the commit is just moving code.
[PATCH v5 26/70] glsl: Add parser/compiler support for std430 interface packing qualifier
Update the error to also mention shader storage blocks, not just ubos?
[PATCH v5 28/70] glsl: add std430 interface packing support to ssbo related operations
Why are we passing false for is_std430 here (emit_access in
handle_rvalue)? We use handle_rvalue for both UBO and SSBO loads,
right? Also, for consistency, I'd prefer if we could just pass
'packing' around instead of is_std430.
[PATCH v5 29/70] glsl: a shader storage buffer must be smaller than the maximum size allowed
Two chunks look like they should be their own patch ("Add unsized
array support to glsl_type::std140_size" or such).
[PATCH v5 38/70] i965/nir/vec4: Implement nir_intrinsic_store_ssbo
Shouldn't this be 'skipped_channels += num_channels;' to handle write mask reg.yw?
[PATCH v5 40/70] nir: Implement __intrinsic_load_ssbo
Refactor handling of cmp instruction for converting to bool
[PATCH v5 54/70] glsl: First argument to atomic functions must be a buffer variable
Nitpick: move check that only looks at first element in list to after loop
Also, I expect that before we land this series (thought that shouldn't
be far off), we'll have deleted the vec4 GLSL IR visitor so we can
drop these patches (I didn't review them):
[PATCH v5 16/70] i965/vec4: Implement ir_unop_get_buffer_size
[PATCH v5 39/70] i965/vec4: Implement __intrinsic_store_ssbo
[PATCH v5 43/70] i965/vec4: Implement __intrinsic_load_ssbo
[PATCH v5 53/70] i965/vec4: Implement lowered SSBO atomic intrinsics
I wrote the initial prototype of the SSBO functionality, but I don't
recall writing:
[PATCH v5 45/70] glsl: atomic counters can be declared as buffer-qualified variables
I don't think I did anything for atomics in my patch. Feel free to
take ownership of that one and add my Reviewed-by.
thanks,
Kristian
More information about the mesa-dev
mailing list