Thsi makes it cheaper to just change the dynamic offsets with
the same descriptor sets.
Suggested-by: Philip Rebohle
---
src/amd/vulkan/radv_cmd_buffer.c | 8 +++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c
On 15/09/18 18:35, Jason Ekstrand wrote:
> On Sat, Sep 15, 2018 at 11:19 AM Alejandro Piñeiro
> mailto:apinhe...@igalia.com>> wrote:
>
> Hi,
>
> this series adds the support for UBO and SSBO. The following patches
> can be classified as:
>
> * Patches 1-8: changes on spirv to nir t
https://bugs.freedesktop.org/show_bug.cgi?id=107914
Bas Nieuwenhuizen changed:
What|Removed |Added
Status|NEW |RESOLVED
Resolution|---
https://bugs.freedesktop.org/show_bug.cgi?id=107914
--- Comment #10 from Bas Nieuwenhuizen ---
Created attachment 141575
--> https://bugs.freedesktop.org/attachment.cgi?id=141575&action=edit
Hack to get the applications working.
--
You are receiving this mail because:
You are the assignee for
https://bugs.freedesktop.org/show_bug.cgi?id=107865
--- Comment #2 from Bruce Cherniak ---
Thank you for tracking this down! That helps a lot!
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.__
On Sat, Sep 15, 2018 at 11:19 AM Alejandro Piñeiro
wrote:
> Hi,
>
> this series adds the support for UBO and SSBO. The following patches
> can be classified as:
>
> * Patches 1-8: changes on spirv to nir to take into account ubo and
>ssbo, so it would be compatible to what OpenGL expects (li
This can happens if we are running an SPIR-V shader (ARB_gl_spirv).
---
src/mesa/main/shader_query.cpp | 30 --
1 file changed, 20 insertions(+), 10 deletions(-)
diff --git a/src/mesa/main/shader_query.cpp b/src/mesa/main/shader_query.cpp
index 11ecd71c575..b775b4231c2
When using a SPIR-V shader. Note that needs to be done before linking
uniforms, so when creating the uniform storage entries, block_index
could be filled properly (among other things).
---
src/mesa/drivers/dri/i965/brw_link.cpp | 4
1 file changed, 4 insertions(+)
diff --git a/src/mesa/drive
The function had a mix of true/GL_TRUE and false/GL_FALSE
returns. Using GL_TRUE/GL_FALSE as the function returns a GLboolean.
---
src/mesa/drivers/dri/i965/brw_link.cpp | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_link.cpp
b/src/mesa/dri
---
src/compiler/glsl/gl_nir_linker.c | 14 ++
1 file changed, 14 insertions(+)
diff --git a/src/compiler/glsl/gl_nir_linker.c
b/src/compiler/glsl/gl_nir_linker.c
index 547549bc4e0..138a12e532d 100644
--- a/src/compiler/glsl/gl_nir_linker.c
+++ b/src/compiler/glsl/gl_nir_linker.c
@@
From: Antia Puentes
Binding comparison is used to determine the block the uniform is part
of. To do the binding comparison we need the information in
UniformBlocks[] and ShaderStorageBlocks[] to be available, so we have
to call gl_nir_link_uniform_blocks() before linking the uniforms.
---
src/co
Adding the ability to link uniform blocks and shader storage blocks
using NIR, intended for ARB_gl_spirv support. Among other things, this
linking needs to take into account that everything should work without
names, as they could be not present, while the GLSL IR uniform block
linking was wrote wi
Until now, we were using the uniform explicit location to check if the
current nir variable already was processed, and entries on the uniform
storage added. But for UBOs/SSBOs, entries are added but we lack a
explicit location.
For those we need to rely on the UBO/SSBO binding (to the nir variable
For this interfaces, the inner members are added only once as uniforms
or resources, in opposite to other cases, like a uniform array of
structs.
---
src/compiler/glsl/gl_nir_link_uniforms.c | 26 --
1 file changed, 24 insertions(+), 2 deletions(-)
diff --git a/src/compile
---
src/compiler/glsl/gl_nir_link_uniforms.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/compiler/glsl/gl_nir_link_uniforms.c
b/src/compiler/glsl/gl_nir_link_uniforms.c
index 1a491dc2e5d..00995fb3f76 100644
--- a/src/compiler/glsl/gl_nir_link_uniforms.c
+++ b/src/com
Equivalent to the already existing ir_variable is_in_buffer_block and
is_in_shader_storage_block, adding the uniform buffer object one. I'm
using the short forms (ssbo, ubo) to avoid having method names too
long.
---
src/compiler/nir/nir.h | 22 ++
1 file changed, 22 insertions
From: Neil Roberts
In order to replicate the behaviour of lower_ubo_reference_visitor,
the lowering code should search the list of blocks in
ShaderStorageBlocks for the matching binding whenever a non-ubo usage
of the resource index is encountered.
The intended usage of the vulkan_resource_index
Specifically, offset, array_stride, matrix_stride and row_major.
On GLSL, most of that info is computed, but on ARB_gl_spirv they are
explicit, and for Mesa, included on the glsl_type.
From ARB_gl_spirv spec:
"Mapping of layouts
std140/std430 -> explicit *Offset*, *ArrayStride*, and
From: Neil Roberts
When linking a program using ARB_gl_spirv it now lowers the
vulkan_resource_index intrinsic as an extra pass on the nir shader.
Unlike Vulkan this can be done without waiting for the extra state
from the pipeline layout.
It also adds the call to this lowering on the i965 drive
We need all the info when asking for the type, so we needed to call
type_decoration_cb earlier, in order to get the ArrayStride.
It is somewhat ugly to do this only for Array types, but we can't do
it before the switch as type_decoration_cb have some asserts to ensure
that the type and the decorat
From ARB_gl_spirv:
"Mapping of layouts
std140/std430 -> explicit *Offset*, *ArrayStride*, and *MatrixStride*
Decoration on struct members"
That means that we would not have available any kind of layout info,
and we should use explicit array strides.
This comm
From ARB_gl_spirv spec:
"7.6.2.spv SPIR-V Uniform Offsets and Strides
The SPIR-V decorations *GLSLShared* or *GLSLPacked* must not be
used. A variable in the *Uniform* Storage Class decorated as a
*Block* must be explicitly laid out using the *Offset*,
*ArrayStride*, and *Matr
vnt_variables uses interface_type on several use cases, but on nir
variable it is more limited. From nir.h:
/**
* For variables that are in an interface block or are an instance of an
* interface block, this is the \c GLSL_TYPE_INTERFACE type for that block.
*
* \sa ir_varia
They are supported by SPIR-V for OpenGL. OpenGL codepath expect nir to
include the ssbo as nir variables.
---
src/compiler/spirv/vtn_variables.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/compiler/spirv/vtn_variables.c
b/src/compiler/spirv/vtn_variables.c
index ba
Some nir variables are only filled up for some specific modes. We
found to need the binding for ubos/ssbos.
The comment before that code (starts with XXX) points that binding
still needs to be filled up for uniform variables at that point, and
that should be fixed, although it doesn't specify why
---
src/compiler/spirv/spirv_to_nir.c | 6 ++
1 file changed, 6 insertions(+)
diff --git a/src/compiler/spirv/spirv_to_nir.c
b/src/compiler/spirv/spirv_to_nir.c
index 101e2b0bf02..02de2f640c1 100644
--- a/src/compiler/spirv/spirv_to_nir.c
+++ b/src/compiler/spirv/spirv_to_nir.c
@@ -798,6 +79
From ARB_gl_spirv spec:
"Mapping of layouts
std140/std430 -> explicit *Offset*, *ArrayStride*, and
*MatrixStride* Decoration on struct members"
and
"A variable in the *Uniform* Storage Class decorated as a *Block*
must be explicitly laid out using the *Offset*
To already existing fields on glsl_types. Specifically:
* glsl_get_struct_field_offset
* glsl_get_struct_field_matrix_layout
* glsl_type_arrays_of_arrays_size
---
src/compiler/nir_types.cpp | 21 +
src/compiler/nir_types.h | 8
2 files changed, 29 insertion
From: Neil Roberts
Previously the code was taking any location decoration on the block
and using that to calculate the member locations for all of the
members. I think this was assuming that there would only be one
location decoration for the entire block. According to the Vulkan spec
it is possi
---
src/compiler/spirv/spirv_to_nir.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/compiler/spirv/spirv_to_nir.c
b/src/compiler/spirv/spirv_to_nir.c
index 15a3e8cce9a..101e2b0bf02 100644
--- a/src/compiler/spirv/spirv_to_nir.c
+++ b/src/compiler/spirv/spirv_to_nir.c
@@ -725,6 +725,7 @@
They are supported by SPIR-V for ARB_gl_spirv.
---
src/compiler/spirv/vtn_variables.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/compiler/spirv/vtn_variables.c
b/src/compiler/spirv/vtn_variables.c
index 358ff4bef7a..ba1b8816038 100644
--- a/src/compiler/spirv/vtn_
Right now, a type is considered a ubo/ssbo if the mode is
uniform/shader_storage and the interface_type is different to
NULL. See ir_variable::in_in_buffer_block as an example.
---
src/compiler/spirv/vtn_variables.c | 11 ++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/sr
Hi,
this series adds the support for UBO and SSBO. The following patches
can be classified as:
* Patches 1-8: changes on spirv to nir to take into account ubo and
ssbo, so it would be compatible to what OpenGL expects (like having
a interface_type, the correct mode, etc).
* Patch 09: som
https://bugs.freedesktop.org/show_bug.cgi?id=107865
--- Comment #1 from Steven Noonan ---
I found out that this build apparently only fails when building from the
release tarball, presumably because of these differences (recursive diff
between git tree and release tarball follows):
Only in mesa-
https://bugs.freedesktop.org/show_bug.cgi?id=107865
Steven Noonan changed:
What|Removed |Added
CC||ste...@uplinklabs.net
--
You are recei
https://bugs.freedesktop.org/show_bug.cgi?id=107942
Bug ID: 107942
Summary: Isaac AntiBirth under wine has invisible entities tu
to clipping plane issue
Product: Mesa
Version: 18.2
Hardware: Other
OS: All
36 matches
Mail list logo