Mesa (master): 26 new commits
Samuel Iglesias Gonsálvez
samuelig at kemper.freedesktop.org
Tue Jul 14 06:00:49 UTC 2015
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ea633db65ffa684ea5237b8cb5bd96fbc1a7769a
Author: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
Date: Wed Jul 8 17:30:44 2015 +0200
glsl: Lower shader storage buffer object loads to GLSL IR instrinsics
Extend the existing lower_ubo_reference pass to also detect SSBO loads
and lower them to __intrinsic_load_ssbo intrinsics.
Signed-off-by: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1966ea57728a1c05300982ddd83de989e363613c
Author: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
Date: Wed Jul 8 17:03:06 2015 +0200
glsl: Lower shader storage buffer object writes to GLSL IR instrinsics
Extend the existing lower_ubo_reference pass to also detect SSBO writes
and lower them to __intrinsic_store_ssbo intrinsics.
Signed-off-by: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2a66ee6fc1fa1e64f2d9a22271187d4462d9e042
Author: Iago Toral Quiroga <itoral at igalia.com>
Date: Fri Apr 24 11:17:15 2015 +0200
glsl: Don't do copy propagation on buffer variables
Since the backing storage for these is shared we cannot ensure that
the value won't change by writes from other threads. Normally SSBO
accesses are not guaranteed to be syncronized with other threads,
except when memoryBarrier is used. So, we might be able to optimize
some SSBO accesses, but for now we always take the safe path and emit
the SSBO access.
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5dfea83ee6bf85fb3962679d043eb06b33bfd4c1
Author: Iago Toral Quiroga <itoral at igalia.com>
Date: Fri Apr 24 11:15:48 2015 +0200
glsl: Don't do constant variable on buffer variables
Since the backing storage for these is shared we cannot ensure that
the value won't change by writes from other threads. Normally SSBO
accesses are not guaranteed to be syncronized with other threads,
except when memoryBarrier is used. So, we might be able to optimize
some SSBO accesses, but for now we always take the safe path and emit
the SSBO access.
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0b1111d985714816fad20c99b4e6ea762df17b46
Author: Iago Toral Quiroga <itoral at igalia.com>
Date: Fri Apr 24 11:14:17 2015 +0200
glsl: Don't do constant propagation on buffer variables
Since the backing storage for these is shared we cannot ensure that
the value won't change by writes from other threads. Normally SSBO
accesses are not guaranteed to be syncronized with other threads,
except when memoryBarrier is used. So, we might be able to optimize
some SSBO accesses, but for now we always take the safe path and emit
the SSBO access.
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5360ff30c4de966422fde6a574e3959c81bf5037
Author: Iago Toral Quiroga <itoral at igalia.com>
Date: Mon Apr 6 10:19:50 2015 +0200
glsl: Do not kill dead assignments to buffer variables or SSBO declarations.
If we kill dead assignments we lose the buffer writes.
Also, we never kill UBO declarations even if they are never referenced
by the shader, they are always considered active. Although the spec
does not seem say this specifically for SSBOs, it is probably implied
since SSBOs are pretty much the same as UBOs, only that you can write
to them.
v2:
- Fix the comment (Jordan)
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3ad92589f29466383c0218aa4a73bff52019c4be
Author: Iago Toral Quiroga <itoral at igalia.com>
Date: Mon Apr 6 09:37:58 2015 +0200
glsl: Don't do tree grafting on buffer variables
Otherwise we can lose writes into the buffers backing the variables.
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=173ed05a6d9e851b2b7b2f9f2d8993e5da115c40
Author: Iago Toral Quiroga <itoral at igalia.com>
Date: Thu Mar 19 11:42:33 2015 +0100
mesa: Implement _mesa_BindBufferRange for target GL_SHADER_STORAGE_BUFFER
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8a1d58bd6129d61ec4efb79cc6f2b61ac777b85b
Author: Iago Toral Quiroga <itoral at igalia.com>
Date: Thu Mar 19 11:37:43 2015 +0100
mesa: Implement _mesa_BindBufferBase for target GL_SHADER_STORAGE_BUFFER
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7b0d0a2bf2d147c6024ff1a4b1eaaad955e7d297
Author: Iago Toral Quiroga <itoral at igalia.com>
Date: Thu Mar 19 11:21:52 2015 +0100
mesa: Implement _mesa_BindBuffersRange for target GL_SHADER_STORAGE_BUFFER
v2:
- Fix error message (Jordan)
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0aa83f3e90a5ca547593631bc1557412e5305bdd
Author: Iago Toral Quiroga <itoral at igalia.com>
Date: Thu Mar 19 10:47:17 2015 +0100
mesa: Implement _mesa_BindBuffersBase for target GL_SHADER_STORAGE_BUFFER
v2:
- Add space before const (Jordan)
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e72f5ef50211c3ce31abaab4ed1bf82df2884157
Author: Iago Toral Quiroga <itoral at igalia.com>
Date: Thu Mar 19 10:31:23 2015 +0100
mesa: Implement _mesa_DeleteBuffers for target GL_SHADER_STORAGE_BUFFER
v2:
- Remove the extra spaces (Jordan)
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=98a1a2c7302526d649a727d63400407727d7aad9
Author: Iago Toral Quiroga <itoral at igalia.com>
Date: Thu Mar 19 11:50:51 2015 +0100
mesa: Initialize and free shader storage buffers
v2:
- Fix indention, used tabs instead of whitespaces. (Jordan)
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2747d566f187cdab5d6bdc508e460a76e5cbd6c4
Author: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
Date: Thu Mar 19 10:22:00 2015 +0100
glsl: fix error messages in invalid declarations of shader storage blocks
Due to GL_ARB_shader_storage_buffer_object extension, shader storage blocks
have the same limitations as uniform blocks.
This patch fixes the corresponding error messages.
Signed-off-by: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9f651dbf7924938a8aa2c9c940ae3ed1366d6198
Author: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
Date: Wed Mar 18 10:52:53 2015 +0100
glsl: buffer variables cannot be defined outside interface blocks
Section 4.3.7 "Buffer Variables", GLSL 4.30 spec:
"Buffer variables may only be declared inside interface blocks
(section 4.3.9 “Interface Blocks”), which are then referred to as
shader storage blocks. It is a compile-time error to declare buffer
variables at global scope (outside a block)."
Signed-off-by: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=20b2907db7b93656cbafe1d24302498e5817dbe2
Author: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
Date: Wed Mar 18 10:25:10 2015 +0100
glsl: shader buffer variables cannot have initializers
Section 4.3.7 "Buffer Variables" of the GLSL 4.30 spec:
"Buffer variables cannot have initializers."
v2:
- Rewrite error message (Jordan)
Signed-off-by: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fa0a86c057ac9bff9b208f93db75c5ce5bd7136f
Author: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
Date: Wed Mar 18 09:02:51 2015 +0100
glsl: enable binding layout qualifier usage for shader storage buffer objects
See GLSL 4.30 spec, section 4.4.5 "Uniform and Shader Storage Block
Layout Qualifiers".
v2:
- Add whitespace in an error message. Delete period '.' at the end of that
error message (Jordan).
Signed-off-by: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c717604dc4b5119fa9091241535c3efd1370438c
Author: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
Date: Thu May 14 12:37:07 2015 +0200
mesa: add MaxShaderStorageBlocks to struct gl_program_constants
v2:
- Set MaxShaderStorageBlocks to 8.
Signed-off-by: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=cd50906e0334d7ad0102e5733a152d55d672776b
Author: Iago Toral Quiroga <itoral at igalia.com>
Date: Thu Mar 19 10:15:30 2015 +0100
mesa: Add shader storage buffer support to struct gl_context
This includes the array of bindings, the current buffer bound to the
GL_SHADER_STORAGE_BUFFER target and a set of general limits and default
values for shader storage buffers.
v2:
- Use spec values for the new defined constants (Jordan)
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=df89ed1591c9d1c55e79fe8effb976c21b172a7d
Author: Iago Toral Quiroga <itoral at igalia.com>
Date: Mon Mar 23 11:19:12 2015 +0100
glsl: Identify active uniform blocks that are buffer blocks as such.
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a78a589efc5440443439d474e45fa1ef8b79178c
Author: Kristian Høgsberg <krh at bitplanet.net>
Date: Wed May 13 11:17:23 2015 +0200
glsl: link buffer variables and shader storage buffer interface blocks
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=84fc5fece006f2bd95287496e32482ac08bfd399
Author: Kristian Høgsberg <krh at bitplanet.net>
Date: Wed May 13 10:53:46 2015 +0200
glsl: Implement parser support for 'buffer' qualifier
This is used to identify shader storage buffer interface blocks where
buffer variables are declared.
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6b09598d63b8b6069b230fbe8283c75cf86f711a
Author: Iago Toral Quiroga <itoral at igalia.com>
Date: Mon May 18 15:47:18 2015 +0200
nir: add nir_var_shader_storage
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1146696f75ea0f2b49e6379c2a62602dfeb51190
Author: Iago Toral Quiroga <itoral at igalia.com>
Date: Fri Jun 5 09:11:53 2015 +0200
mesa: rename is_in_uniform_block to is_in_buffer_block
Since this now checks if a variable is inside a uniform or a shader
storage block.
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=18feaa8f36b311c443fd56666507ec1768fb9582
Author: Kristian Høgsberg <krh at bitplanet.net>
Date: Wed May 13 10:41:55 2015 +0200
glsl: Add ir_var_shader_storage
This will be used to identify buffer variables inside shader storage
buffer objects, which are very similar to uniforms except for a few
differences, most important of which is that they are writable.
Since buffer variables are so similar to uniforms, we will almost always
want them to go through the same paths as uniforms.
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3095ee9b8bd4154cc63b6332c21b16954555e241
Author: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
Date: Tue Mar 17 12:17:27 2015 +0100
mesa: define ARB_shader_storage_buffer_object extension
Signed-off-by: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
More information about the mesa-commit
mailing list