The same fix Marius implemented for gen6 (commit a9b04d8a) and
gen7 (commit 24ecf37a).
---
src/mesa/drivers/dri/i965/gen8_sf_state.c | 22 --
1 file changed, 20 insertions(+), 2 deletions(-)
Ken, I don't have gen8 hardware available to test this so it would
be nice if someone
The same fix Marius implemented for gen6 (commit a9b04d8a) and
gen7 (commit 24ecf37a).
Also, we need the same code to handle special cases of line width
in gen6, gen7 and now gen8, so put that in the helper function
we use to compute the line width.
---
src/mesa/drivers/dri/i965/brw_util.h |
readpixels_can_use_memcpy will later call _mesa_format_matches_format_and_type
which does much tighter checks than these to decide if we can use
memcpy for readpixels.
Also, the checks do not seem to be extensive enough anyway, since we are
checking for signed/unsigned conversion only when the fra
These checks were in Mesa prior to commit fbba25bba, but they were
not necessary for the purpose that Mesa intended (check if we could
resolve ReadPixels via memcpy), so that commit took them away.
Unfortunately, it seems that some Gallium drivers rely on these
checks to make the decision of wheth
From: Samuel Iglesias Gonsalvez
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
Reviewed-by: Jordan Justen
---
src/glsl/ast_to_hir.cpp | 9 +
1 file
From: Kristian Høgsberg
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 alway
Reviewed-by: Jordan Justen
---
src/glsl/nir/glsl_to_nir.cpp | 4
src/glsl/nir/nir.h | 1 +
src/glsl/nir/nir_lower_atomics.c | 3 ++-
src/glsl/nir/nir_lower_io.c | 9 ++---
src/glsl/nir/nir_print.c | 5 +++--
src/glsl/nir/nir_validate.c | 6 --
6 fi
Since this now checks if a variable is inside a uniform or a shader
storage block.
Reviewed-by: Jordan Justen
---
src/glsl/ast_to_hir.cpp| 2 +-
src/glsl/ir.h | 5 +++--
src/glsl/link_uniform_block_active_visitor.cpp | 6 +++---
src/glsl/l
ssing i965
backend implementation.
With the full v3 series there are no regressions (except for the
one we discussed with the v1 of this series that is actually a bogus UBO test
for which we sent a fix to piglit).
Iago Toral Quiroga (15):
mesa: rename is_in_uniform_block to is_in_buffer_block
v2:
- Fix error message (Jordan)
Reviewed-by: Jordan Justen
---
src/mesa/main/bufferobj.c | 110 ++
1 file changed, 110 insertions(+)
diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
index 27638ca..0a9ffe4 100644
--- a/src/mesa/main/
Otherwise we can lose writes into the buffers backing the variables.
Reviewed-by: Jordan Justen
---
src/glsl/opt_tree_grafting.cpp | 9 +
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/glsl/opt_tree_grafting.cpp b/src/glsl/opt_tree_grafting.cpp
index d47613c..7f2ee6c 1
From: Samuel Iglesias Gonsalvez
Signed-off-by: Samuel Iglesias Gonsalvez
Reviewed-by: Jordan Justen
---
src/glsl/glcpp/glcpp-parse.y| 3 ++
src/glsl/glsl_parser_extras.cpp | 63 +
src/glsl/glsl_parser_extras.h | 7 +
src/mesa/main/extensions.
v2:
- Remove the extra spaces (Jordan)
Reviewed-by: Jordan Justen
---
src/mesa/main/bufferobj.c | 11 +++
1 file changed, 11 insertions(+)
diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
index 2d70f7b..ee920a9 100644
--- a/src/mesa/main/bufferobj.c
+++ b/src/mesa/main
From: Samuel Iglesias Gonsalvez
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
Reviewed-by: Jordan Justen
---
src/glsl/ast_to_
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
---
src/mesa/main/bufferobj.c |
v2:
- Fix indention, used tabs instead of whitespaces. (Jordan)
Reviewed-by: Jordan Justen
---
src/mesa/main/bufferobj.c | 19 +++
1 file changed, 19 insertions(+)
diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
index c5d4ada..2d70f7b 100644
--- a/src/mesa/mai
From: Samuel Iglesias Gonsalvez
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
Reviewed-by: Jordan Justen
--
From: Kristian Høgsberg
This is used to identify shader storage buffer interface blocks where
buffer variables are declared.
Reviewed-by: Jordan Justen
---
src/glsl/ast.h | 1 +
src/glsl/ast_to_hir.cpp | 14 ++
src/glsl/ast_type.cpp | 3 ++-
src
From: Samuel Iglesias Gonsalvez
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 glob
From: Samuel Iglesias Gonsalvez
v2:
- Set MaxShaderStorageBlocks to 8.
Signed-off-by: Samuel Iglesias Gonsalvez
Reviewed-by: Jordan Justen
---
src/mesa/main/context.c | 2 ++
src/mesa/main/mtypes.h | 3 +++
2 files changed, 5 insertions(+)
diff --git a/src/mesa/main/context.c b/src/mesa/mai
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 no
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 no
Reviewed-by: Jordan Justen
---
src/glsl/link_uniform_block_active_visitor.cpp | 1 +
src/glsl/link_uniform_block_active_visitor.h | 1 +
src/glsl/link_uniform_blocks.cpp | 4
src/mesa/main/mtypes.h | 5 +
4 files changed, 11 insertions(+)
diff --g
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 sa
Reviewed-by: Jordan Justen
---
src/mesa/main/bufferobj.c | 56 +++
1 file changed, 56 insertions(+)
diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
index 0a9ffe4..c3548b5 100644
--- a/src/mesa/main/bufferobj.c
+++ b/src/mesa/main/buf
Reviewed-by: Jordan Justen
---
src/mesa/main/bufferobj.c | 37 +
1 file changed, 37 insertions(+)
diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
index c3548b5..4e25a72 100644
--- a/src/mesa/main/bufferobj.c
+++ b/src/mesa/main/bufferobj.c
@
v2:
- Add space before const (Jordan)
Reviewed-by: Jordan Justen
---
src/mesa/main/bufferobj.c | 142 ++
src/mesa/main/mtypes.h| 7 +++
2 files changed, 149 insertions(+)
diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
index e
From: Kristian Høgsberg
Reviewed-by: Jordan Justen
---
src/glsl/link_interface_blocks.cpp | 15 ---
src/glsl/link_uniform_initializers.cpp | 3 ++-
src/glsl/link_uniforms.cpp | 8 +---
src/glsl/linker.cpp| 4 ++--
4 files changed, 21 insert
From: Samuel Iglesias Gonsalvez
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
---
src/glsl/lower_ubo_reference.cpp | 441 +++
1 file chang
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 no
From: Samuel Iglesias Gonsalvez
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
---
src/glsl/lower_ubo_reference.cpp | 73 +++-
1 file changed
Since these are a special kind of UBOs we emit them together reusing the
same infrastructure, however, we use a RAW surface so we can reuse
existing untyped read/write/atomic messages which include a pixel mask
header that we need to set to obtain correct behavior with helper
invocations of the fra
---
src/glsl/ast_to_hir.cpp | 9 -
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index ab62599..92391a0 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -762,8 +762,15 @@ do_assignment(exec_list *instruct
We use the same dirty state for SSBOs and UBOs because they share the
same infrastructure.
Reviewed-by: Jordan Justen
---
src/mesa/drivers/dri/i965/brw_state_upload.c | 1 +
src/mesa/drivers/dri/i965/intel_buffer_objects.c | 2 ++
2 files changed, 3 insertions(+)
diff --git a/src/mesa/drive
---
src/glsl/glsl_lexer.ll | 10 +-
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/glsl/glsl_lexer.ll b/src/glsl/glsl_lexer.ll
index 845deeb..82ad245 100644
--- a/src/glsl/glsl_lexer.ll
+++ b/src/glsl/glsl_lexer.ll
@@ -404,11 +404,11 @@ image2DShadow KEYWORD(13
This is the same we do for other things like uniforms because it ensures
optimal performance.
Reviewed-by: Jordan Justen
---
src/mesa/drivers/dri/i965/brw_context.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/mesa/drivers/dri/i965/brw_context.c
b/src/mesa/drivers/dri/i965/brw_contex
From: Samuel Iglesias Gonsalvez
Signed-off-by: Samuel Iglesias Gonsalvez
---
src/glsl/nir/glsl_to_nir.cpp | 10 ++
src/glsl/nir/nir_intrinsics.h | 9 +
2 files changed, 19 insertions(+)
diff --git a/src/glsl/nir/glsl_to_nir.cpp b/src/glsl/nir/glsl_to_nir.cpp
index 66430f3..8b
From: Samuel Iglesias Gonsalvez
The returned drm buffer object has a size multiple of 4096 but that should not
be exposed to the API user, which is working with a different size.
Signed-off-by: Samuel Iglesias Gonsalvez
---
src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 4 ++--
1 file chan
From: Samuel Iglesias Gonsalvez
Signed-off-by: Samuel Iglesias Gonsalvez
---
src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 50
1 file changed, 50 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
index
Buffer variables are the same as uniforms, only that read/write, so we want
the same treatment.
Reviewed-by: Jordan Justen
---
src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp
b/src/me
---
src/glsl/nir/glsl_to_nir.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/glsl/nir/glsl_to_nir.cpp b/src/glsl/nir/glsl_to_nir.cpp
index f5a664a..1d83a98 100644
--- a/src/glsl/nir/glsl_to_nir.cpp
+++ b/src/glsl/nir/glsl_to_nir.cpp
@@ -1011,7 +1011,8 @@ nir_visitor::
Reviewed-by: Jordan Justen
---
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
index c7722c5..0c8b0bd 100644
--- a/src/mesa/driv
From: Samuel Iglesias Gonsalvez
Signed-off-by: Samuel Iglesias Gonsalvez
---
src/glsl/lower_ubo_reference.cpp | 179 +++
1 file changed, 179 insertions(+)
diff --git a/src/glsl/lower_ubo_reference.cpp b/src/glsl/lower_ubo_reference.cpp
index 8b08107..9d0a796
tests have already been merged in piglit's master branch.
Antia Puentes (1):
glsl: Consider active all elements of a shared/std140 block array
Iago Toral Quiroga (29):
i965: Use 16-byte offset alignment for shader storage buffers
i965: Implement DriverFlags.NewShaderStorageBuffer
i965
From: Samuel Iglesias Gonsalvez
Signed-off-by: Samuel Iglesias Gonsalvez
---
src/mesa/drivers/dri/i965/brw_defines.h| 1 +
src/mesa/drivers/dri/i965/brw_fs.cpp | 1 +
src/mesa/drivers/dri/i965/brw_fs.h | 3 ++
src/mesa/drivers/dri/i965/brw_fs_generator.cpp | 47
From: Samuel Iglesias Gonsalvez
Signed-off-by: Samuel Iglesias Gonsalvez
---
src/mesa/drivers/dri/i965/brw_context.c | 11 +++
1 file changed, 11 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_context.c
b/src/mesa/drivers/dri/i965/brw_context.c
index 8a0ffbe..c4cc6f2 100644
---
src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 62
1 file changed, 62 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
index f3fcb4a..9bf41f7 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
+++ b
Shader Storage Buffer Object will add new atomic functions that are not
associated with counters, so better have atomic counter-specific functions
explicitly include the word "counter" in their names.
---
src/glsl/builtin_functions.cpp | 30 +++---
1 file changed, 15 insert
---
src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 71
1 file changed, 71 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
index 5f2c4fa..f3fcb4a 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
+++ b
---
src/mesa/drivers/dri/i965/brw_fs.h | 2 +
src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 77
2 files changed, 79 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_fs.h
b/src/mesa/drivers/dri/i965/brw_fs.h
index ea204d3..844f813 100644
--- a/src/mesa
From: Samuel Iglesias Gonsalvez
Defined in ARB_shader_storage_buffer_object extension.
Signed-off-by: Samuel Iglesias Gonsalvez
---
src/mesa/main/uniforms.c | 52
src/mesa/main/uniforms.h | 4
2 files changed, 56 insertions(+)
diff --git
---
src/glsl/nir/glsl_to_nir.cpp| 67 -
src/glsl/nir/nir_intrinsics.h | 2 +-
src/glsl/nir/nir_lower_phis_to_scalar.c | 2 +
3 files changed, 69 insertions(+), 2 deletions(-)
diff --git a/src/glsl/nir/glsl_to_nir.cpp b/src/glsl/nir/glsl_to_n
From: Samuel Iglesias Gonsalvez
Otherwise, generate a link time error as per the
ARB_shader_storage_buffer_object spec.
Signed-off-by: Samuel Iglesias Gonsalvez
---
src/glsl/glsl_types.cpp | 9 +++--
src/glsl/link_uniform_blocks.cpp | 17 +
src/glsl/linker.cpp
From: Samuel Iglesias Gonsalvez
Signed-off-by: Samuel Iglesias Gonsalvez
---
src/mesa/main/tests/enum_strings.cpp | 15 +++
1 file changed, 15 insertions(+)
diff --git a/src/mesa/main/tests/enum_strings.cpp
b/src/mesa/main/tests/enum_strings.cpp
index dc5fe75..be11482 100644
--- a
From: Samuel Iglesias Gonsalvez
Signed-off-by: Samuel Iglesias Gonsalvez
---
src/glsl/lower_ubo_reference.cpp | 65 ++--
1 file changed, 49 insertions(+), 16 deletions(-)
diff --git a/src/glsl/lower_ubo_reference.cpp b/src/glsl/lower_ubo_reference.cpp
index
---
src/mesa/drivers/dri/i965/brw_vec4.h | 1 +
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 76 ++
2 files changed, 77 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_vec4.h
b/src/mesa/drivers/dri/i965/brw_vec4.h
index 870946b..d5f5ef9 100644
---
---
src/mesa/drivers/dri/i965/brw_vec4.h | 2 +
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 157 +
2 files changed, 159 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_vec4.h
b/src/mesa/drivers/dri/i965/brw_vec4.h
index 5f25a2c..870946b 100644
--
From: Samuel Iglesias Gonsalvez
According to ARB_uniform_buffer_object spec:
"If the parameter (starting offset or size) was not specified when the
buffer object was bound (e.g. if bound with BindBufferBase), or if no
buffer object is bound to , zero is returned."
Signed-off-by: Samuel Iglesi
The original GLSL IR intrinsics have been lowered to an internal
version that accepts a block index and an offset instead of a
SSBO reference.
---
src/mesa/drivers/dri/i965/brw_vec4.h | 1 +
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 103 +
2 files changed
From: Samuel Iglesias Gonsalvez
Notice that we should differentiate betweeb shader storage blocks and
uniform blocks, since they have different limits.
Signed-off-by: Samuel Iglesias Gonsalvez
---
src/glsl/linker.cpp | 43 +++
1 file changed, 39 insertio
From: Samuel Iglesias Gonsalvez
They only can be defined in the last position of the shader
storage blocks.
When an unsized array is used in different shaders, it might be
converted in different sized arrays, avoid get a linker error
in that case.
v2:
- Rework error condition and error messages
From: Samuel Iglesias Gonsalvez
Otherwise we can expect odd things to happen if, for example, we ask
for the size of the attached buffer from shader code, since that
might query this value from the surface we uploaded and get random
results.
Signed-off-by: Samuel Iglesias Gonsalvez
---
src/mes
From: Kristian Høgsberg
---
src/glsl/ast_to_hir.cpp | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index a814b8a..f0c2e5b 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -2764,7 +2764,7 @@ apply_ty
These handle querying the buffer name attached to a giving binding point
as well as the start offset and size of that buffer.
---
src/mesa/main/get.c | 31 +++
1 file changed, 31 insertions(+)
diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
index 3d6d639..1a29b2
From: Samuel Iglesias Gonsalvez
Now std140 is not the only interface packing qualifier that can be used.
Signed-off-by: Samuel Iglesias Gonsalvez
---
src/glsl/ast.h | 10 +
src/glsl/ast_to_hir.cpp | 54 +
src/glsl/glsl_types.cpp
From: Samuel Iglesias Gonsalvez
This commit also adds functions to calculate std430 base alignment and sizes
Signed-off-by: Samuel Iglesias Gonsalvez
---
src/glsl/ast.h | 1 +
src/glsl/ast_to_hir.cpp | 20 +--
src/glsl/ast_type.cpp| 1 +
src/glsl
From: Samuel Iglesias Gonsalvez
When propagating std430 packing qualifier to the struct's members, new
glsl_types need to be created because the existing ones are const.
The new glsl_types are meant to replace the already defined one
taking into account that the field names cannot have different
From: Antia Puentes
Commmit 1ca25ab (glsl: Do not eliminate 'shared' or 'std140'
blocks or block members) considers active 'shared' and 'std140'
uniform blocks and uniform block arrays but did not include the
block array elements. It was possible to have an active uniform
block array without any
The original GLSL IR intrinsics have been lowered to an internal
version that accepts a block index and an offset instead of a
SSBO reference.
---
src/glsl/nir/glsl_to_nir.cpp | 55 +++
src/glsl/nir/nir_intrinsics.h | 12 ++
2 files changed, 67 inse
---
src/glsl/nir/glsl_to_nir.cpp | 36
src/glsl/nir/nir_intrinsics.h | 12 ++--
2 files changed, 42 insertions(+), 6 deletions(-)
diff --git a/src/glsl/nir/glsl_to_nir.cpp b/src/glsl/nir/glsl_to_nir.cpp
index 8b3a8ec..880b6c2 100644
--- a/src/glsl/nir
Reviewed-by: Jordan Justen
---
src/mesa/drivers/dri/i965/brw_context.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/mesa/drivers/dri/i965/brw_context.c
b/src/mesa/drivers/dri/i965/brw_context.c
index d92d7c2..8a0ffbe 100644
--- a/src/mesa/drivers/dri/i965/brw_context.c
+++ b/src/mesa/
From: Samuel Iglesias Gonsalvez
Signed-off-by: Samuel Iglesias Gonsalvez
---
src/glsl/link_uniforms.cpp | 15 ++-
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/src/glsl/link_uniforms.cpp b/src/glsl/link_uniforms.cpp
index 131e76c..eefe7dc 100644
--- a/src/glsl/link_
Since memory qualifiers are also keywords we need to do the same
trick we use for other keywords that can be used as layout qualifiers
to handle alternate capitalizations in desktop GLSL, like row_major, etc.
---
src/glsl/ast_to_hir.cpp | 31
src/glsl/glsl_parser.yy | 75 +
From: Samuel Iglesias Gonsalvez
Signed-off-by: Samuel Iglesias Gonsalvez
---
src/mesa/main/get.c | 1 +
src/mesa/main/get_hash_params.py | 12
2 files changed, 13 insertions(+)
diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
index 4fc30e7..822bc17 100644
--- a
From: Samuel Iglesias Gonsalvez
Signed-off-by: Samuel Iglesias Gonsalvez
---
src/mesa/drivers/dri/i965/intel_extensions.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/mesa/drivers/dri/i965/intel_extensions.c
b/src/mesa/drivers/dri/i965/intel_extensions.c
index 6b3bd12..e3b1406 10064
The error location won't be right, but fixing that would require to check
for this as we process each type of AST node that can involve a variable
read.
---
src/glsl/ast_to_hir.cpp | 49 +
1 file changed, 49 insertions(+)
diff --git a/src/glsl/ast_t
---
src/glsl/ast_function.cpp | 37 +
1 file changed, 37 insertions(+)
diff --git a/src/glsl/ast_function.cpp b/src/glsl/ast_function.cpp
index 92e26bf..be6aba6 100644
--- a/src/glsl/ast_function.cpp
+++ b/src/glsl/ast_function.cpp
@@ -141,6 +141,31 @@ verify_i
We need our reads to provide well-defined results for all enabled
channels even for helper invocations, which means that we should not
use a pixel mask with them.
---
src/mesa/drivers/dri/i965/brw_eu_emit.c | 4 ++--
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 35 -
From: Samuel Iglesias Gonsalvez
v2:
- Add ShaderStorageBlockBinding to static_data.py
Signed-off-by: Samuel Iglesias Gonsalvez
Reviewed-by: Jordan Justen
---
.../glapi/gen/ARB_shader_storage_buffer_object.xml | 36 ++
src/mapi/glapi/gen/GL4x.xml| 18
From: Samuel Iglesias Gonsalvez
Notice that Skylake needs to include a header in the sampler message
so it will need some tweaks to work there.
Signed-off-by: Samuel Iglesias Gonsalvez
---
src/mesa/drivers/dri/i965/brw_defines.h | 3 ++
src/mesa/drivers/dri/i965/brw_shader.cpp
The first argument to SSBO atomics is a reference to a SSBO buffer variable
so we want to compute its block index and offset and provide these values
to an internal version of the intrinsic that takes them instead of the
buffer variable reference.
---
src/glsl/lower_ubo_reference.cpp | 141 +++
---
src/glsl/builtin_functions.cpp | 185 +
1 file changed, 185 insertions(+)
diff --git a/src/glsl/builtin_functions.cpp b/src/glsl/builtin_functions.cpp
index 4ba6d6f..c8ecefe 100644
--- a/src/glsl/builtin_functions.cpp
+++ b/src/glsl/builtin_functions.cp
---
docs/GL3.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/GL3.txt b/docs/GL3.txt
index 33a282e..6427616 100644
--- a/docs/GL3.txt
+++ b/docs/GL3.txt
@@ -164,7 +164,7 @@ GL 4.3, GLSL 4.30:
GL_ARB_program_interface_query DONE (all drivers)
From: Samuel Iglesias Gonsalvez
Including TOP_LEVEL_ARRAY_SIZE and TOP_LEVEL_ARRAY_STRIDE queries.
Signed-off-by: Samuel Iglesias Gonsalvez
---
src/glsl/ir_uniform.h| 5 +
src/glsl/link_uniforms.cpp | 17 ++-
src/glsl/linker.cpp | 10 +-
src/mesa/main/program
---
src/glsl/ast_to_hir.cpp | 25 +
src/glsl/glsl_types.h | 10 ++
2 files changed, 35 insertions(+)
diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index f0c2e5b..92bf414 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -5587,
From: Samuel Iglesias Gonsalvez
Signed-off-by: Samuel Iglesias Gonsalvez
---
src/glsl/linker.cpp | 12 +++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index e932b8d..330ef56 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/link
From: Samuel Iglesias Gonsalvez
It also creates unop and triop expressions to tell the driver to
calculate the unsized array length.
It is needed two expressions to do the calculation:
* The unop expression saves the ir_rvalue* whose length should be
calculated.
* Afterwards, this unop is goi
The same we did for the fragment shader with commit 7452f18b.
---
src/mesa/drivers/dri/i965/brw_vec4_generator.cpp | 4
1 file changed, 4 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp
b/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp
index 443bf48..8876e02 100
We only consider a vgrf defined by a given block if the block writes to it
unconditionally. So far we have been checking this by testing that the
instruction is not predicated, however, in the case of BRW_OPCODE_SEL,
the predication is used to select the value to write, not to decide if
the write i
und these.
Iago Toral Quiroga (4):
i965/fs: Fix indentation in fs_live_variables::compute_start_end
i965/fs: skip control-flow aware liveness analysis if we only have 1
block
i965/vec4: fix indentation in vec4_visitor::calculate_live_intervals
i965/vec4: skip control-flow aware liveness ana
Otherwise, what this is going to do is mark every variable alive in the
single block we have, and thus, alive since its definition until the
program ends, which is really bad in situations where register pressure
is high.
Of course, this does not address the real problem: that our liveness
analysi
---
src/mesa/drivers/dri/i965/brw_vec4_live_variables.cpp | 16
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_live_variables.cpp
b/src/mesa/drivers/dri/i965/brw_vec4_live_variables.cpp
index cc688ef..6782379 100644
--- a/src/mesa
---
src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp | 17 -
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp
b/src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp
index 19aec92..ce066a9 100644
--- a/src/mesa/driv
Otherwise, what this is going to do is mark every variable alive in the
single block we have, and thus, alive since its definition until the
program ends, which is really bad in situations where register pressure
is high.
Of course, this does not address the real problem: that our liveness
analysi
Before d31f98a272e429d and 56e2bdbca36a20 we had a sigle index space for UBOs
and SSBOs, so NumBufferInterfaceBlocks would contain the combined number of
blocks, not just one kind. This means that for shader programs using both
UBOs and SSBOs, we were setting num_ssbos and num_ubos to a larger numb
---
src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
index 05f3f63..7afcd5b 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
+++ b/src/mesa/drivers/
---
src/mesa/drivers/dri/i965/brw_vec4_nir.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp
b/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp
index 0025f36..ea1e3e7 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp
+++ b/src/mesa/
Now that we have separate index spaces for UBOs and SSBOs we do not need
to iterate through BufferInterfaceBlocks any more, we can just take the
UBO count directly from NumUniformBlocks.
---
src/mesa/main/shaderapi.c | 6 +-
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/src/mesa
---
src/mesa/main/shaderapi.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c
index 26995ad..18e463d 100644
--- a/src/mesa/main/shaderapi.c
+++ b/src/mesa/main/shaderapi.c
@@ -713,10 +713,10 @@ get_programiv(struct gl_co
The latter holds both UBOs and SSBOs, but here we only want UBOs.
---
src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index 06f510d..f481e89 1
1 - 100 of 1739 matches
Mail list logo