mesa.git
4 years agomesa/st/i965: add a ProgramResourceHash for quicker resource lookup
Tapani Pälli [Fri, 3 Jan 2020 05:56:23 +0000 (07:56 +0200)]
mesa/st/i965: add a ProgramResourceHash for quicker resource lookup

Many resource APIs require searching by name, add a hash table to make
this faster. Currently we traverse the whole resource list for name
based queries, this change makes all these cases use the hash.

Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2203
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3254>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3254>

4 years agogitlab-ci: Test against LLVM / clang 9 on x86
Michel Dänzer [Fri, 13 Dec 2019 10:02:16 +0000 (11:02 +0100)]
gitlab-ci: Test against LLVM / clang 9 on x86

They're not available for Debian buster yet, so we have to use upstream
snapshot packages again.

In contrast to earlier, we now store the LLVM APT repository key in Git
instead of re-downloading it every time.

4 years agopanfrost: Don't double-flip Z/W for 2D arrays
Alyssa Rosenzweig [Tue, 7 Jan 2020 02:36:20 +0000 (21:36 -0500)]
panfrost: Don't double-flip Z/W for 2D arrays

We need to mindful that we don't clobber the shadow comparator.

Fixes dEQP-GLES3.functional.shaders.texture_functions.texture.sampler2darrayshadow_*

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
4 years agopan/midgard: Account for z/w flip in texelFetch
Alyssa Rosenzweig [Tue, 7 Jan 2020 02:31:46 +0000 (21:31 -0500)]
pan/midgard: Account for z/w flip in texelFetch

Required for proper txf of 2D arrays.

Fixes dEQP-GLES3.functional.shaders.texture_functions.texelfetch.*2darray*

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
4 years agopanfrost: Adjust for mismatch between hardware/Gallium in arrays/cube
Alyssa Rosenzweig [Tue, 7 Jan 2020 02:22:12 +0000 (21:22 -0500)]
panfrost: Adjust for mismatch between hardware/Gallium in arrays/cube

The hardware separates face selection and array indexing, it looks like,
whereas Gallium smushes them together with some modulus fun. Let's fix
it so mipmapped 2D arrays work without regressing cubemaps.

Fixes dEQP-GLES3.functional.texture.filtering.2d_array.* among others.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
4 years agopanfrost: Respect constant buffer_offset
Alyssa Rosenzweig [Tue, 7 Jan 2020 01:39:58 +0000 (20:39 -0500)]
panfrost: Respect constant buffer_offset

Fixes dEQP-GLES3.functional.ubo.multi_basic_types.single_buffer.* among
others

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
4 years agoglsl: use nir version of check_image_resources() for nir linker
Timothy Arceri [Fri, 3 Jan 2020 04:12:59 +0000 (15:12 +1100)]
glsl: use nir version of check_image_resources() for nir linker

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
4 years agoglsl: add check_image_resources() for the nir linker
Timothy Arceri [Fri, 3 Jan 2020 04:09:20 +0000 (15:09 +1100)]
glsl: add check_image_resources() for the nir linker

This is adapted from the GLSL IR code but doesn't need to
iterate over the IR. I believe this also fixes a potential bug in
the GLSL IR code which potentially counts the same output twice.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
4 years agoglsl: use nir linker to link atomics
Timothy Arceri [Mon, 23 Dec 2019 00:37:57 +0000 (11:37 +1100)]
glsl: use nir linker to link atomics

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
4 years agomesa: add new UseNIRGLSLLinker constant
Timothy Arceri [Thu, 2 Jan 2020 05:30:05 +0000 (16:30 +1100)]
mesa: add new UseNIRGLSLLinker constant

This will be used to disable some GLSL IR passes in following
patches.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
4 years agoglsl: reorder link_and_validate_uniforms() calls
Timothy Arceri [Mon, 23 Dec 2019 00:00:16 +0000 (11:00 +1100)]
glsl: reorder link_and_validate_uniforms() calls

This is required for the following commit.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
4 years agoglsl: add new gl_nir_link_glsl() helper
Timothy Arceri [Mon, 23 Dec 2019 00:03:35 +0000 (11:03 +1100)]
glsl: add new gl_nir_link_glsl() helper

This will allow us to do some linking in NIR that was previously
done by the GLSL IR linker. To start with this just has calls for
linking atomics.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
4 years agoglsl: add gl_nir_link_check_atomic_counter_resources()
Timothy Arceri [Wed, 11 Dec 2019 05:12:54 +0000 (16:12 +1100)]
glsl: add gl_nir_link_check_atomic_counter_resources()

This is pretty much a copy of link_check_atomic_counter_resources()
updated to work with the NIR linker.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
4 years agoglsl: rename gl_nir_link() to gl_nir_link_spirv()
Timothy Arceri [Wed, 11 Dec 2019 04:48:32 +0000 (15:48 +1100)]
glsl: rename gl_nir_link() to gl_nir_link_spirv()

A NIR based glsl linking function will be too different to the
spirv version to bother attempting any sharing. So lets change
the name to be explicit.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
4 years agost/mesa: Lower vars to ssa and constant prop before gl_nir_lower_buffers
Kristian H. Kristensen [Wed, 13 Nov 2019 22:49:53 +0000 (14:49 -0800)]
st/mesa: Lower vars to ssa and constant prop before gl_nir_lower_buffers

The gl_nir_lower_buffers pass relies on recognizing the same literal
constants as the GLSL compiler so that constant buffer array indices
are constant in nir as well.  Without this, get_block_array_index()
would see

  vec1 32 ssa_723 = deref_var &const_temp@1 (function_temp int)
  vec1 32 ssa_724 = load_const (0x00000001 /* 0.000000 */)
  ...
  vec1 32 ssa_5 = deref_var &const_temp@1 (function_temp int)
  vec1 32 ssa_6 = intrinsic load_deref (ssa_5) (0) /* access=0 */
  vec1 32 ssa_7 = deref_var &blockB (ssbo BlockB[1])
  vec1 32 ssa_8 = deref_array &(*ssa_7)[ssa_6] (ssbo BlockB) /* &blockB[ssa_6] */

instead of a literal 1, and ultimately generate the block name
BlockB[0].  That used to work, since we before the previous commits
we'd compact the block binding points and names. Thus, there would
always be a BlockB[0].

Now, if an entry in a block array isn't used, we don't generate that
block name, which means that if entry 0 isn't used BlockB[0] isn't
present and then get_block_array_index() fails to find the block.

In most cases we would have dealt with this in the call to
st_nir_opts() in st_nir_link_shaders(), but in the num_shaders == 1
case (for example, compute) we would call gl_nir_lower_buffers()
before we lowered GLSL constants.  Move that corner case up next to
where we call st_nir_link_shaders() so we call st_nir_opts() at the
same point in the flow for all shaders.

Fixes: dEQP-GLES31.functional.ssbo.layout.random.all_per_block_buffers.18
Signed-off-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
4 years agoglsl/nir: do not change an element index to have correct block name
Andrii Simiklit [Wed, 17 Jul 2019 12:05:49 +0000 (15:05 +0300)]
glsl/nir: do not change an element index to have correct block name

When SSBO array is used with packed layout, both IR tree
and as a result, NIR tree will be incorrect.
In fact, the SSBO dereference indices won't
match the array size in some cases like the following:

"layout(packed, binding=1) buffer SSBO { vec4 a; } ssbo[3];
 out vec4 color;
 void main() {
   color = ssbo[2].a;
 }"

After linking the IR and then NIR will have an SSBO array
definition with size 1 but dereference still will have index 2
and linked_shader->Program->sh.ShaderStorageBlocks
will contain just SSBO with name "SSBO[2]"

So this line should be removed at least as a workaround for now
to avoid error like:
Failed to find the block by name "SSBO[0]"

Fixes: 810dde2a "glsl/nir: Add a pass to lower UBO and SSBO access"
Signed-off-by: Andrii Simiklit <andrii.simiklit@globallogic.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
4 years agoglsl: fix a binding points assignment for ssbo/ubo arrays
Andrii Simiklit [Tue, 5 Mar 2019 15:58:53 +0000 (17:58 +0200)]
glsl: fix a binding points assignment for ssbo/ubo arrays

This is needed to be in agreement with spec requirements:
https://github.com/KhronosGroup/OpenGL-API/issues/46

Piers Daniell:
   "We discussed this in the OpenGL/ES working group meeting
    and agreed that eliminating unused elements from the interface
    block array is not desirable. There is no statement in the spec
    that this takes place and it would be highly implementation
    dependent if it happens. If the application has an "interface"
    in the shader they need to match up with the API it would be
    quite confusing to have the binding point get compacted.
    So the answer is no, the binding points aren't affected by
    unused elements in the interface block array."

v2: - 'original_dim_size' field moved above to keep
      the struct packed better on 64-bit
    - added a comment for 'total_num_array_elements' field
    - fixed a binding point calculations for SSBOs array of arrays
          ( Ian Romanick <ian.d.romanick@intel.com> )
    - fixed binding point calculations for non-packed SSBOs
v3:
    - rename 'total_num_array_elements' to 'aoa_size'
          ( Jason Ekstrand <jason@jlekstrand.net> )
    - rename 'boffset' to 'binding_stride'
          ( Alejandro Piñeiro <apinheiro@igalia.com> )

Fixes: 8cf1333b "glsl: link uniform block arrays of arrays"
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109532
Reported-By: Ilia Mirkin <imirkin@alum.mit.edu>
Tested-by: Fritz Koenig <frkoenig@google.com>
Signed-off-by: Andrii Simiklit <andrii.simiklit@globallogic.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
4 years agoglsl: fix an incorrect max_array_access after optimization of ssbo/ubo
Andrii Simiklit [Tue, 5 Mar 2019 15:38:20 +0000 (17:38 +0200)]
glsl: fix an incorrect max_array_access after optimization of ssbo/ubo

This is needed to fix these tests:
piglit.spec.arb_shader_storage_buffer_object.compiler.unused-array-element_frag
piglit.spec.arb_shader_storage_buffer_object.compiler.unused-array-element_comp

Fixes: 8cf1333b "glsl: link uniform block arrays of arrays"
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109532
Reported-By: Ilia Mirkin <imirkin@alum.mit.edu>
Tested-by: Fritz Koenig <frkoenig@google.com>
Signed-off-by: Andrii Simiklit <andrii.simiklit@globallogic.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
4 years agoradeonsi: remove TGSI
Marek Olšák [Sat, 4 Jan 2020 04:15:27 +0000 (23:15 -0500)]
radeonsi: remove TGSI

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
4 years agoradeonsi: disable SDMA on gfx8 to fix corruption on RX 580
Marek Olšák [Thu, 2 Jan 2020 22:29:01 +0000 (17:29 -0500)]
radeonsi: disable SDMA on gfx8 to fix corruption on RX 580

Closes: #1399
Closes: #1889
Cc: 19.2 19.3 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-By: Timur Kristóf <timur.kristof@gmail.com>
4 years agoradeonsi: move SI and CIK+ SDMA code into 1 common function for cleanups
Marek Olšák [Thu, 2 Jan 2020 22:02:12 +0000 (17:02 -0500)]
radeonsi: move SI and CIK+ SDMA code into 1 common function for cleanups

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-By: Timur Kristóf <timur.kristof@gmail.com>
4 years agoradeonsi: rename dma_cs -> sdma_cs
Marek Olšák [Thu, 2 Jan 2020 21:51:58 +0000 (16:51 -0500)]
radeonsi: rename dma_cs -> sdma_cs

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-By: Timur Kristóf <timur.kristof@gmail.com>
4 years agoradeonsi: add AMD_DEBUG=nodmacopyimage for debugging
Marek Olšák [Thu, 2 Jan 2020 20:43:53 +0000 (15:43 -0500)]
radeonsi: add AMD_DEBUG=nodmacopyimage for debugging

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-By: Timur Kristóf <timur.kristof@gmail.com>
4 years agoradeonsi: add AMD_DEBUG=nodmaclear for debugging
Marek Olšák [Thu, 2 Jan 2020 20:34:00 +0000 (15:34 -0500)]
radeonsi: add AMD_DEBUG=nodmaclear for debugging

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-By: Timur Kristóf <timur.kristof@gmail.com>
4 years agoradeonsi: remove broken and unused SI SDMA image copy code
Marek Olšák [Thu, 2 Jan 2020 20:40:30 +0000 (15:40 -0500)]
radeonsi: remove broken and unused SI SDMA image copy code

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-By: Timur Kristóf <timur.kristof@gmail.com>
4 years agoradeonsi: rename SDMA debug flags
Marek Olšák [Thu, 2 Jan 2020 20:30:36 +0000 (15:30 -0500)]
radeonsi: rename SDMA debug flags

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-By: Timur Kristóf <timur.kristof@gmail.com>
4 years agogitlab-ci: Switch LAVA jobs to use shared dEQP runner
Tomeu Vizoso [Fri, 13 Dec 2019 09:20:23 +0000 (10:20 +0100)]
gitlab-ci: Switch LAVA jobs to use shared dEQP runner

Take one step towards sharing code between the LAVA and non-LAVA jobs,
with the goals of reducing maintenance burden and use of computational
resources.

The env var DEQP_NO_SAVE_RESULTS allows us to skip the procesing of the
XML result files, which can take a long time and is not useful in the
LAVA case as we are not uploading artifacts anywhere at the moment.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
4 years agogitlab-ci: Update kernel for LAVA to 5.5-rc1 plus fixes
Tomeu Vizoso [Fri, 13 Dec 2019 09:21:48 +0000 (10:21 +0100)]
gitlab-ci: Update kernel for LAVA to 5.5-rc1 plus fixes

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
4 years agopanfrost: Handle PIPE_FORMAT_R10G10B10A2_USCALED
Alyssa Rosenzweig [Sat, 4 Jan 2020 18:27:20 +0000 (13:27 -0500)]
panfrost: Handle PIPE_FORMAT_R10G10B10A2_USCALED

Same format code as UINT... might be different in how it's fed into a
shader but we'll deal with that when we get there.

Fixes dEQP-GLES3.functional.vertex_arrays.single_attribute.output_types.usigned_int2_10_10_10.components4_vec2_quads1

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
4 years agopanfrost: Report MSAA 4x supported for dEQP
Alyssa Rosenzweig [Sat, 4 Jan 2020 18:23:18 +0000 (13:23 -0500)]
panfrost: Report MSAA 4x supported for dEQP

Fixes dEQP-GLES3.functional.state_query.integers.max_samples_getinteger64

We'll have to actually implement multisampling next, but hey.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
4 years agopanfrost: Cleanup tiling selection logic
Alyssa Rosenzweig [Sat, 4 Jan 2020 18:00:50 +0000 (13:00 -0500)]
panfrost: Cleanup tiling selection logic

Make it a lot more obvious what we're doing and fix more than a few
corner cases in the process.

Fixes
dEQP-GLES3.functional.buffer.map.write.render_as_index_array.pixel*, and
likely others.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
4 years agopanfrost: Implement sRGB blend shaders
Alyssa Rosenzweig [Sat, 4 Jan 2020 17:14:57 +0000 (12:14 -0500)]
panfrost: Implement sRGB blend shaders

We use the lowering in nir_format_convert. There are native ops for this
so this is far from optimal and not remotely efficient but as with most
blend shader things right now, it's hard enough to get it working, so
let's focus on that for now. We'll make it fast later (once we have
GLES3 stable, we can start optimizing these things).

Fixes dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.*

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
4 years agopanfrost: Support rendering to non-zero Z/S layers
Alyssa Rosenzweig [Fri, 3 Jan 2020 19:15:28 +0000 (14:15 -0500)]
panfrost: Support rendering to non-zero Z/S layers

Fixes abort in STK's shadow implementation.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
4 years agopanfrost: Texture from Z32F_S8 as R32F
Alyssa Rosenzweig [Fri, 3 Jan 2020 16:26:43 +0000 (11:26 -0500)]
panfrost: Texture from Z32F_S8 as R32F

Z32F_S8 becomes Z32F in texturing, which in turn just becomes R32F.

Fixes dEQP-GLES3.functional.texture.format.sized.*.depth32f_stencil8*

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
4 years agoiris/query: Implement PIPE_QUERY_GPU_FINISHED
Danylo Piliaiev [Thu, 12 Sep 2019 13:47:40 +0000 (16:47 +0300)]
iris/query: Implement PIPE_QUERY_GPU_FINISHED

Implementation is similar to radeonsi in 5f1cef76

Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
4 years agost/mesa: use uint-samplers for sampling stencil buffers
Erik Faye-Lund [Fri, 3 Jan 2020 23:13:07 +0000 (00:13 +0100)]
st/mesa: use uint-samplers for sampling stencil buffers

Otherwise, we end up mismatching the sampler types when rendering.

Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
4 years agoac/surface: use uint16_t for mipmap level pitches
Samuel Pitoiset [Fri, 3 Jan 2020 07:07:58 +0000 (08:07 +0100)]
ac/surface: use uint16_t for mipmap level pitches

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
4 years agoetnaviv: fix incorrectly failing vertex size assert
Jonathan Marek [Mon, 9 Dec 2019 15:31:47 +0000 (10:31 -0500)]
etnaviv: fix incorrectly failing vertex size assert

Changes the assert to match the comment above.

This assert was failing in some cases while running darkplaces.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
4 years agolima: fix PP stream terminator size
Vasily Khoruzhick [Thu, 17 Oct 2019 02:20:25 +0000 (19:20 -0700)]
lima: fix PP stream terminator size

PP stream terminator size seems to be 4 words, it worked with full PP
stream because we align stream beginning to 32 bytes and BO is
initialized with zeroes. But with partial PP stream it sometimes break
if for new PP stream we reuse BO that has non-zero value at this place.

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
4 years agolima: don't reload and redraw tiles that were not updated
Vasily Khoruzhick [Thu, 10 Oct 2019 02:23:54 +0000 (19:23 -0700)]
lima: don't reload and redraw tiles that were not updated

We don't need to reload and redraw some tiles if framebuffer was not
cleared and scissor test was enabled for some of draws. This simple
optimization fixes cursor lag in X11

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
4 years agolima: postpone PP stream generation
Vasily Khoruzhick [Thu, 10 Oct 2019 02:20:02 +0000 (19:20 -0700)]
lima: postpone PP stream generation

This commit postpones PP stream generation till job is submitted.
Doing that this late allows us to skip reloading and redrawing tiles
that were not updated.

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
4 years agolima/parser: Fix VS cmd stream parser
Andreas Baierl [Fri, 3 Jan 2020 20:56:56 +0000 (21:56 +0100)]
lima/parser: Fix VS cmd stream parser

prefetch is int, not bool.

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Signed-off-by: Andreas Baierl <ichgeh@imkreisrum.de>
4 years agolima/parser: Fix rsw parser
Andreas Baierl [Fri, 3 Jan 2020 21:26:35 +0000 (22:26 +0100)]
lima/parser: Fix rsw parser

Drop assert as it is not necessary and used wrong anyway.

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Signed-off-by: Andreas Baierl <ichgeh@imkreisrum.de>
4 years agoanv: Only enable EWA LOD algorithm when doing anisotropic filtering.
Kenneth Graunke [Tue, 17 Dec 2019 05:15:15 +0000 (21:15 -0800)]
anv: Only enable EWA LOD algorithm when doing anisotropic filtering.

Updated documentation renames "Anisotropic Algorithm" to "LOD Algorithm"
and adds a note for Gen9+ saying "The EWA Algorithm should only be
enabled for Anisotropic Filtering modes." and indicating that the extra
accuracy shouldn't be necessary for other modes, and comes at a cost.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
4 years agoiris: Allow HiZ for copy_region sources
Kenneth Graunke [Thu, 26 Dec 2019 07:43:01 +0000 (23:43 -0800)]
iris: Allow HiZ for copy_region sources

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
4 years agoi965: Allow HiZ for glCopyImageSubData sources
Jason Ekstrand [Thu, 5 Dec 2019 16:39:18 +0000 (10:39 -0600)]
i965: Allow HiZ for glCopyImageSubData sources

v2 (Ken): Handle platforms without sampler support for HiZ

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> [v2 changes]
4 years agoanv: Allow HiZ in TRANSFER_SRC_OPTIMAL on Gen8-9
Jason Ekstrand [Wed, 4 Dec 2019 21:51:34 +0000 (15:51 -0600)]
anv: Allow HiZ in TRANSFER_SRC_OPTIMAL on Gen8-9

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
4 years agointel/blorp: Use the source format when using blorp_copy with HiZ
Jason Ekstrand [Wed, 4 Dec 2019 21:49:15 +0000 (15:49 -0600)]
intel/blorp: Use the source format when using blorp_copy with HiZ

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
4 years agoi965/blorp: Don't resolve HiZ unless we're reinterpreting
Jason Ekstrand [Wed, 4 Dec 2019 02:31:24 +0000 (20:31 -0600)]
i965/blorp: Don't resolve HiZ unless we're reinterpreting

This eliminates 50% of pixels (2M) rendered for a blit in GS:GO.  This
accounts for 3% of pixels rendered in the game.  Total GPU clocks for
the first 900 frames of CSGO improves by 1%.

Tested-by: Mark Janes <mark.a.janes@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
4 years agoblorp: Allow reading with HiZ
Jason Ekstrand [Wed, 4 Dec 2019 02:29:15 +0000 (20:29 -0600)]
blorp: Allow reading with HiZ

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
4 years agoblorp: Stop whacking Z24 depth to BGRA8
Jason Ekstrand [Wed, 4 Dec 2019 02:25:19 +0000 (20:25 -0600)]
blorp: Stop whacking Z24 depth to BGRA8

The shader code required to do this is int(sat(x) * UINT24_MAX) which
isn't really worth all the effort to avoid.  Doing the format
conversion, on the other hand, prevents us from sampling with HiZ which
is something that we very much want on gen8-9 where we can.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
4 years agoetnaviv: move descriptor based texture structs
Christian Gmeiner [Fri, 3 Jan 2020 08:15:35 +0000 (09:15 +0100)]
etnaviv: move descriptor based texture structs

This moves the descriptor based texture structs and their helpers
into the only user.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Jonathan Marek <jonathan@marek.ca>
4 years agoetnaviv: move state based texture structs
Christian Gmeiner [Fri, 3 Jan 2020 08:11:08 +0000 (09:11 +0100)]
etnaviv: move state based texture structs

This moves the state based texture structs and their helpers
into the only user.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Jonathan Marek <jonathan@marek.ca>
4 years agopanfrost: Fix Android build
Roman Stratiienko [Fri, 3 Jan 2020 09:50:28 +0000 (11:50 +0200)]
panfrost: Fix Android build

Include missing `encoder/pan_props.c` into the build.

Signed-off-by: Roman Stratiienko <roman.stratiienko@globallogic.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
4 years agomesa/st: glsl_to_nir: don't lower atomics to SSBOs if driver supports HW atomics
Gert Wollny [Sat, 28 Dec 2019 15:07:30 +0000 (16:07 +0100)]
mesa/st: glsl_to_nir: don't lower atomics to SSBOs if driver supports HW atomics

At least on r600 HW atomic operations are way less expensive than SSBO atomic
operations.

v2: use st->has_hw_atomics (Erik Anholt)

v3: remove second invocation of atomic to ssbo lowering (Erik Anholt)

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3286>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3286>

4 years agor600: Delete vertex buffer only if there is actually a shader state
Gert Wollny [Sat, 28 Dec 2019 16:17:02 +0000 (17:17 +0100)]
r600: Delete vertex buffer only if there is actually a shader state

Fixes: gl-2.0-vertexattribpointer
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Konstantin Kharlamov <hi-angel@yandex.ru>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3286>

4 years agor600: Make SID and unsigned value
Gert Wollny [Sat, 28 Dec 2019 14:34:26 +0000 (15:34 +0100)]
r600: Make SID and unsigned value

The value is never negative, and makeing it unsigned fixes some
warnings

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Konstantin Kharlamov <hi-angel@yandex.ru>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3286>

4 years agor600: Fix maximum line width
Gert Wollny [Sat, 28 Dec 2019 14:35:13 +0000 (15:35 +0100)]
r600: Fix maximum line width

There are only 13 bits available to store the line width, hence
it can't be larger than 8191

v2: Add Fixes tag

v3: - Unify value since for all r600 archs (Konstantin Kharlamov)
    - Correct the value the line width value is emitted as a 12.4
      fixed point value of 1/2 line width on r600-r700 and as
      8 * line width on Evergreen and newer.

Fixes: 06bfb2d28f7adca7edc6be9c210a7a3583023652
    r600: fork and import gallium/radeon

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Konstantin Kharlamov <hi-angel@yandex.ru>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3286>

4 years agor600/sb: Correct SB disassambler for better debugging
Gert Wollny [Sat, 28 Dec 2019 14:35:39 +0000 (15:35 +0100)]
r600/sb: Correct SB disassambler for better debugging

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Konstantin Kharlamov <hi-angel@yandex.ru>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3286>

4 years agor600: Make it possible to include r600_asm.h in a C++ file
Gert Wollny [Sun, 1 Dec 2019 18:04:16 +0000 (19:04 +0100)]
r600: Make it possible to include r600_asm.h in a C++ file

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Konstantin Kharlamov <hi-angel@yandex.ru>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3286>

4 years agor600: Add functions to dump the shader info
Gert Wollny [Sun, 1 Dec 2019 18:01:20 +0000 (19:01 +0100)]
r600: Add functions to dump the shader info

This will be helpful to compare TGSI and NIR code path,

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Konstantin Kharlamov <hi-angel@yandex.ru>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3286>

4 years agogallium: tgsi_from_mesa - handle VARYING_SLOT_FACE
Gert Wollny [Tue, 17 Dec 2019 20:30:16 +0000 (21:30 +0100)]
gallium: tgsi_from_mesa - handle VARYING_SLOT_FACE

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3286>

4 years agonir: make nir_get_texture_size/lod available outside nir_lower_tex
Gert Wollny [Sun, 22 Dec 2019 16:35:56 +0000 (17:35 +0100)]
nir: make nir_get_texture_size/lod available outside nir_lower_tex

This functions can be useful in other places.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3286>

4 years agogallium/tgsi_from_mesa: Add 'extern "C"' to be able to include from C++
Gert Wollny [Mon, 25 Nov 2019 18:27:13 +0000 (19:27 +0100)]
gallium/tgsi_from_mesa: Add 'extern "C"' to be able to include from C++

The r600/nir backend is in C++ and needs to include this file.

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3286>

4 years agospirv: Fix glsl type assert in spir2nir.
Bas Nieuwenhuizen [Wed, 1 Jan 2020 13:56:26 +0000 (14:56 +0100)]
spirv: Fix glsl type assert in spir2nir.

Fixes: 624789e3708 "compiler/glsl: handle case where we have multiple users for types"
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
4 years agoetnaviv: use a better name for FE_VERTEX_STREAM_UNK14680
Christian Gmeiner [Fri, 3 Jan 2020 09:27:00 +0000 (10:27 +0100)]
etnaviv: use a better name for FE_VERTEX_STREAM_UNK14680

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
4 years agoradv: Only use the gfx mipmap level offset/pitch for linear textures.
Bas Nieuwenhuizen [Fri, 3 Jan 2020 10:25:31 +0000 (11:25 +0100)]
radv: Only use the gfx mipmap level offset/pitch for linear textures.

The tiled-case is non-sensical for non-base mips, but Vulkan requires
that this function handles it but at the same time does not require
returning anything useful. So we can basically return anything.

Correct tiled pitch and offset are still required for our own WSI and
in the future getting the layouts of images with DRM format modifiers.
Both don't have to deal with images with more than 1 level though.

Fixes: 824bd0830e8 "radv: return the correct pitch for linear mipmaps on GFX10"
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2301
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2304
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
4 years agoRevert "amd/common: Always initialize gfx9 mipmap offset/pitch."
Bas Nieuwenhuizen [Fri, 3 Jan 2020 10:19:35 +0000 (11:19 +0100)]
Revert "amd/common: Always initialize gfx9 mipmap offset/pitch."

This reverts commit 973181c06cca3fe232c3a435abde31f2fc1b81ef.

Requested by Marek.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
4 years agoiris: Delete remnants of the unimplemented ASTC 5x5 workaround
Kenneth Graunke [Sat, 23 Nov 2019 05:52:12 +0000 (21:52 -0800)]
iris: Delete remnants of the unimplemented ASTC 5x5 workaround

I copy and pasted some of the boilerplate but never the implementation.
For now, ASTC 5x5 is disabled and faked via uncompressed RGBA; let's
delete these remnants until such a time when we implement it properly.

Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
4 years agoiris: Disable ASTC 5x5 support on Gen9 for now.
Kenneth Graunke [Sat, 23 Nov 2019 05:41:58 +0000 (21:41 -0800)]
iris: Disable ASTC 5x5 support on Gen9 for now.

Intel Gen9 hardware has some nasty restrictions where ASTC 5x5 formats
and color compression can't both live in the sampler cache at the same
time.  To properly support it, we have to track which of those exist
in the cache and flush ASTC out or resolve away compression.

As far as I'm aware, very little uses ASTC 5x5 textures, so instead
of replicating all that for iris, we simply turn it off and rely on
the Gallium fallback mechanism to fake it via uncompressed RGBA.

This should avoid GPU hangs any time people use ASTC 5x5 with CCS.

Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
4 years agost/mesa: Allow ASTC5x5 fallbacks separately from other ASTC LDR formats.
Kenneth Graunke [Sat, 23 Nov 2019 05:33:19 +0000 (21:33 -0800)]
st/mesa: Allow ASTC5x5 fallbacks separately from other ASTC LDR formats.

This patch allows us to fake ASTC 5x5 specifically, while leaving the
other ASTC LDR formats with native support.  I plan to use this in iris,
at least for the time being.

Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
4 years agoetnaviv: use nir_lower_clip_halfz instead of open-coding
Erik Faye-Lund [Sun, 15 Dec 2019 17:09:46 +0000 (18:09 +0100)]
etnaviv: use nir_lower_clip_halfz instead of open-coding

We already have a helper for this, so let's use that instead of rolling
our own version.

Reviewed-by: Jonathan Marek <jonathan@marek.ca>
Tested-by: Paul Cercueil <paul@crapouillou.net>
4 years agonir/zink: move clip_halfz-lowering to common code
Erik Faye-Lund [Sun, 15 Dec 2019 17:03:49 +0000 (18:03 +0100)]
nir/zink: move clip_halfz-lowering to common code

Etnaviv also does the same thing, so let's try to avoid repetition here,
and use the same for it code as well.

Reviewed-by: Jonathan Marek <jonathan@marek.ca>
Tested-by: Paul Cercueil <paul@crapouillou.net>
4 years agozink: remove unused code-path in lower_pos_write
Erik Faye-Lund [Thu, 19 Dec 2019 13:41:09 +0000 (14:41 +0100)]
zink: remove unused code-path in lower_pos_write

This code is never reached, because we don't call nir_lower_io before
lowering this. So let's get rid of it.

4 years agozink: use nir_fmul_imm
Erik Faye-Lund [Sun, 15 Dec 2019 16:52:56 +0000 (17:52 +0100)]
zink: use nir_fmul_imm

Reviewed-by: Jonathan Marek <jonathan@marek.ca>
Tested-by: Paul Cercueil <paul@crapouillou.net>
4 years agozink: implement load_vertex_id
Erik Faye-Lund [Fri, 3 Jan 2020 11:21:02 +0000 (12:21 +0100)]
zink: implement load_vertex_id

Not 100% sure if this matches the semantics, but it seems to pass the
tests, so it seems like an improvement.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
4 years agozink: factor out builtin-var creation
Erik Faye-Lund [Fri, 3 Jan 2020 11:20:02 +0000 (12:20 +0100)]
zink: factor out builtin-var creation

This is useful so we can reuse it for the next patch

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
4 years agozink: simplify front-face type
Erik Faye-Lund [Fri, 3 Jan 2020 11:19:10 +0000 (12:19 +0100)]
zink: simplify front-face type

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
4 years agoanv: Ignore some CreateInfo structs when rasterization is disabled
Caio Marcelo de Oliveira Filho [Fri, 3 Jan 2020 21:23:32 +0000 (13:23 -0800)]
anv: Ignore some CreateInfo structs when rasterization is disabled

According to the description of VkGraphicsPipelineCreateInfo(),
pViewportState, pMultisampleState, pDepthStencilState and
pColorBlendState must be ignored when rasterization is not enabled.

This avoids potentially invalid pointers being dereferenced when
rasterization is disabled.  Tested with `demos_x64 VK_Parameter_Zoo`
from Renderdoc repository.

v2: Don't store the `raster_enabled` as part of anv_pipeline, just
    query it from the create info.  This avoids storing a state that's
    only used during pipeline creation. (Jason)

Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2258
Cc: <mesa-stable@lists.freedesktop.org>
Reviewed-by: Eric Engestrom <eric@engestrom.ch> [v1]
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> [v1]
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
4 years agoanv: Drop unused function parameter
Caio Marcelo de Oliveira Filho [Sat, 21 Dec 2019 07:00:57 +0000 (23:00 -0800)]
anv: Drop unused function parameter

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
4 years agoradeonsi: remove the "display_dcc_offset == 0" assertion
Marek Olšák [Thu, 2 Jan 2020 19:10:46 +0000 (14:10 -0500)]
radeonsi: remove the "display_dcc_offset == 0" assertion

I think it's not needed.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
4 years agoradeonsi: ignore PIPE_BIND_SCANOUT for imported textures
Marek Olšák [Fri, 27 Dec 2019 22:11:51 +0000 (17:11 -0500)]
radeonsi: ignore PIPE_BIND_SCANOUT for imported textures

It's obtained from the BO metadata.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
4 years agoradeonsi: preserve the scanout flag for shared resources on gfx9 and gfx10
Marek Olšák [Fri, 27 Dec 2019 20:53:12 +0000 (15:53 -0500)]
radeonsi: preserve the scanout flag for shared resources on gfx9 and gfx10

Closes: #2195
Closes: #2294
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
4 years agolima: fix allocation of GP outputs storage for indexed draw
Vasily Khoruzhick [Fri, 3 Jan 2020 04:58:19 +0000 (20:58 -0800)]
lima: fix allocation of GP outputs storage for indexed draw

For indexed draw number of VS invocations is (ctx->max_index - ctx->min_index + 1),
so we have to use this number when calculating space for varyings, gl_Position and
gl_PointSize.

Fixes dEQP-GLES2.functional.buffer.write.use.index_array.array and
dEQP-GLES2.functional.buffer.write.use.index_array.element_array

Reviewed-by: Andreas Baierl <ichgeh@imkreisrum.de>
Reviewed-by: Erico Nunes <nunes.erico@gmail.com>
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
4 years agoanv: Drop unneeded struct keywords
Jason Ekstrand [Fri, 3 Jan 2020 17:20:22 +0000 (11:20 -0600)]
anv: Drop unneeded struct keywords

All VkFoo structs are typedef'd to not need the struct keyword.  Leaving
it in there is just extra characters and breaks Vulkan's aliasing when
stuff gets promoted to core versions.  It's better to just never use
struct for VkFoo.

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
4 years agor600: Remove HEVC related code since HEVC is not supported
Thong Thai [Thu, 19 Dec 2019 19:53:47 +0000 (14:53 -0500)]
r600: Remove HEVC related code since HEVC is not supported

Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3153>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3153>

4 years agoradeon: Use P010 for decoding of 10-bit videos
Thong Thai [Wed, 18 Dec 2019 16:33:22 +0000 (11:33 -0500)]
radeon: Use P010 for decoding of 10-bit videos

Previously, P016 was used for the decoding of 10-bit HEVC/H.265 encoded
videos, which worked fine for mpv and ffmpeg. GStreamer specifically looks
for P010, so this patch sets the default buffer type to P010 for HEVC
decoding.

Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3153>

4 years agost/va: Add support for P010, used for 10-bit videos
Thong Thai [Wed, 18 Dec 2019 16:31:28 +0000 (11:31 -0500)]
st/va: Add support for P010, used for 10-bit videos

Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3153>

4 years agogallium: Add PIPE_FORMAT_P010 support
Thong Thai [Wed, 18 Dec 2019 16:26:34 +0000 (11:26 -0500)]
gallium: Add PIPE_FORMAT_P010 support

Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3153>

4 years agoutil/format: Add the P010 format used for 10-bit videos
Thong Thai [Wed, 18 Dec 2019 13:59:17 +0000 (08:59 -0500)]
util/format: Add the P010 format used for 10-bit videos

Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3153>

4 years agozink: implement some more trivial opcodes
Erik Faye-Lund [Fri, 3 Jan 2020 11:22:55 +0000 (12:22 +0100)]
zink: implement some more trivial opcodes

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
4 years agozink: implement txf
Erik Faye-Lund [Fri, 20 Dec 2019 14:56:08 +0000 (15:56 +0100)]
zink: implement txf

texelFetch is a requirement for OpenGL 3.0, so this gets us a step
closer to GL 3.0 support.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
4 years agoradv: implement VK_AMD_mixed_attachment_samples
Samuel Pitoiset [Fri, 6 Dec 2019 15:09:48 +0000 (16:09 +0100)]
radv: implement VK_AMD_mixed_attachment_samples

With VK_AMD_mixed_attachment_samples, the number of depth/stencil
samples isn't always equal to the number of color samples. Adjust
the number of Z samples when it's different but make sure to have
a consistent sample count if there are no depth/stencil attachments.

Also adjust the number of samples used for fragment shaders which is
the number of color samples if mixed attachment samples are used.

Only enabled on GFX8+ because it's untested on previous chips.

All dEQP-VK.pipeline.multisample.mixed_attachment_samples.* now pass.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3018>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3018>

4 years agoradv: record number of color/depth samples for each subpass
Samuel Pitoiset [Fri, 6 Dec 2019 13:14:25 +0000 (14:14 +0100)]
radv: record number of color/depth samples for each subpass

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3018>

4 years agoetnaviv: gc400 does not support any vertex sampler
Christian Gmeiner [Thu, 2 Jan 2020 11:50:22 +0000 (12:50 +0100)]
etnaviv: gc400 does not support any vertex sampler

On STM32MP1 fixes the dEQPs below and changes the dEQP run statistics to:

-  Passed:        16856/17346 (97.2%)
-  Failed:        236/17346 (1.4%)
-  Not supported: 199/17346 (1.1%)
+  Passed:        16780/17346 (96.7%)
+  Failed:        86/17346 (0.5%)
+  Not supported: 425/17346 (2.5%)
   Warnings:      55/17346 (0.3%)

dEQP-GLES2.functional.shaders.struct.uniform.sampler_vertex
dEQP-GLES2.functional.shaders.struct.uniform.sampler_nested_vertex
dEQP-GLES2.functional.shaders.struct.uniform.sampler_array_vertex
dEQP-GLES2.functional.shaders.struct.uniform.sampler_in_function_arg_vertex
dEQP-GLES2.functional.shaders.struct.uniform.sampler_in_array_function_arg_vertex
dEQP-GLES2.functional.shaders.texture_functions.vertex.texture2d
dEQP-GLES2.functional.shaders.texture_functions.vertex.texture2dproj_vec3
dEQP-GLES2.functional.shaders.texture_functions.vertex.texture2dproj_vec4
dEQP-GLES2.functional.shaders.texture_functions.vertex.texture2dlod
dEQP-GLES2.functional.shaders.texture_functions.vertex.texture2dprojlod_vec3
dEQP-GLES2.functional.shaders.texture_functions.vertex.texture2dprojlod_vec4
dEQP-GLES2.functional.shaders.texture_functions.vertex.texturecube
dEQP-GLES2.functional.shaders.texture_functions.vertex.texturecubelod
dEQP-GLES2.functional.shaders.random.texture.vertex.0
dEQP-GLES2.functional.shaders.random.texture.vertex.1
dEQP-GLES2.functional.shaders.random.texture.vertex.2
dEQP-GLES2.functional.shaders.random.texture.vertex.3
dEQP-GLES2.functional.shaders.random.texture.vertex.4
dEQP-GLES2.functional.shaders.random.texture.vertex.5
dEQP-GLES2.functional.shaders.random.texture.vertex.6
dEQP-GLES2.functional.shaders.random.texture.vertex.7
dEQP-GLES2.functional.shaders.random.texture.vertex.8
dEQP-GLES2.functional.shaders.random.texture.vertex.9
dEQP-GLES2.functional.shaders.random.texture.vertex.10
dEQP-GLES2.functional.shaders.random.texture.vertex.11
dEQP-GLES2.functional.shaders.random.texture.vertex.12
dEQP-GLES2.functional.shaders.random.texture.vertex.13
dEQP-GLES2.functional.shaders.random.texture.vertex.14
dEQP-GLES2.functional.shaders.random.texture.vertex.16
dEQP-GLES2.functional.shaders.random.texture.vertex.17
dEQP-GLES2.functional.shaders.random.texture.vertex.18
dEQP-GLES2.functional.shaders.random.texture.vertex.19
dEQP-GLES2.functional.shaders.random.texture.vertex.20
dEQP-GLES2.functional.shaders.random.texture.vertex.22
dEQP-GLES2.functional.shaders.random.texture.vertex.23
dEQP-GLES2.functional.shaders.random.texture.vertex.24
dEQP-GLES2.functional.shaders.random.texture.vertex.26
dEQP-GLES2.functional.shaders.random.texture.vertex.28
dEQP-GLES2.functional.shaders.random.texture.vertex.29
dEQP-GLES2.functional.shaders.random.texture.vertex.31
dEQP-GLES2.functional.shaders.random.texture.vertex.34
dEQP-GLES2.functional.shaders.random.texture.vertex.37
dEQP-GLES2.functional.shaders.random.texture.vertex.38
dEQP-GLES2.functional.shaders.random.texture.vertex.39
dEQP-GLES2.functional.shaders.random.texture.vertex.40
dEQP-GLES2.functional.shaders.random.texture.vertex.42
dEQP-GLES2.functional.shaders.random.texture.vertex.43
dEQP-GLES2.functional.shaders.random.texture.vertex.44
dEQP-GLES2.functional.shaders.random.texture.vertex.45
dEQP-GLES2.functional.shaders.random.texture.vertex.48
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_nearest_clamp
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_nearest_repeat
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_nearest_mirror
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_linear_clamp
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_linear_repeat
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_linear_mirror
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_nearest_clamp
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_nearest_repeat
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_nearest_mirror
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_linear_clamp
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_linear_repeat
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_linear_mirror
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_nearest_nearest_clamp
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_nearest_nearest_repeat
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_nearest_nearest_mirror
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_nearest_linear_clamp
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_nearest_linear_repeat
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_nearest_linear_mirror
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_nearest_nearest_clamp
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_nearest_nearest_repeat
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_nearest_nearest_mirror
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_nearest_linear_clamp
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_nearest_linear_repeat
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_nearest_linear_mirror
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_nearest_clamp
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_nearest_repeat
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_nearest_mirror
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_linear_clamp
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_linear_repeat
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_linear_mirror
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_nearest_clamp
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_nearest_repeat
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_nearest_mirror
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_linear_clamp
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_linear_repeat
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_linear_mirror
dEQP-GLES2.functional.texture.vertex.2d.wrap.clamp_clamp
dEQP-GLES2.functional.texture.vertex.2d.wrap.clamp_repeat
dEQP-GLES2.functional.texture.vertex.2d.wrap.clamp_mirror
dEQP-GLES2.functional.texture.vertex.2d.wrap.repeat_clamp
dEQP-GLES2.functional.texture.vertex.2d.wrap.repeat_repeat
dEQP-GLES2.functional.texture.vertex.2d.wrap.repeat_mirror
dEQP-GLES2.functional.texture.vertex.2d.wrap.mirror_clamp
dEQP-GLES2.functional.texture.vertex.2d.wrap.mirror_repeat
dEQP-GLES2.functional.texture.vertex.2d.wrap.mirror_mirror
dEQP-GLES2.functional.fbo.api.attach_names
dEQP-GLES2.functional.uniform_api.info_query.basic.sampler2D_vertex
dEQP-GLES2.functional.uniform_api.info_query.basic.sampler2D_both
dEQP-GLES2.functional.uniform_api.info_query.basic.samplerCube_vertex
dEQP-GLES2.functional.uniform_api.info_query.basic.samplerCube_both
dEQP-GLES2.functional.uniform_api.info_query.basic_array.sampler2D_vertex
dEQP-GLES2.functional.uniform_api.info_query.basic_array.sampler2D_both
dEQP-GLES2.functional.uniform_api.info_query.basic_struct.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.info_query.basic_struct.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.info_query.struct_in_array.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.info_query.struct_in_array.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.info_query.array_in_struct.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.info_query.array_in_struct.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.info_query.nested_structs_arrays.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.info_query.nested_structs_arrays.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.info_query.unused_uniforms.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.info_query.unused_uniforms.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic.sampler2D_vertex
dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic.sampler2D_both
dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic.samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic.samplerCube_both
dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic_array.sampler2D_vertex
dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic_array.sampler2D_both
dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic_struct.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic_struct.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.struct_in_array.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.struct_in_array.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.array_in_struct.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.array_in_struct.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.nested_structs_arrays.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.nested_structs_arrays.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.initial.render.basic.sampler2D_vertex
dEQP-GLES2.functional.uniform_api.value.initial.render.basic.sampler2D_both
dEQP-GLES2.functional.uniform_api.value.initial.render.basic.samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.initial.render.basic.samplerCube_both
dEQP-GLES2.functional.uniform_api.value.initial.render.basic_array.sampler2D_vertex
dEQP-GLES2.functional.uniform_api.value.initial.render.basic_array.sampler2D_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic.sampler2D_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic.sampler2D_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic.samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic.samplerCube_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic_array.sampler2D_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic_array.sampler2D_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic_array_first_elem_without_brackets.sampler2D_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic_array_first_elem_without_brackets.sampler2D_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic_struct.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic_struct.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.struct_in_array.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.struct_in_array.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.array_in_struct.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.array_in_struct.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.nested_structs_arrays.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.nested_structs_arrays.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.sampler2D_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.sampler2D_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.samplerCube_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_array.sampler2D_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_array.sampler2D_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_struct.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_struct.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic.sampler2D_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic.sampler2D_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic.samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic.samplerCube_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic_array.sampler2D_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic_array.sampler2D_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic_array_first_elem_without_brackets.sampler2D_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic_array_first_elem_without_brackets.sampler2D_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic_struct.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic_struct.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.struct_in_array.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.struct_in_array.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.array_in_struct.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.array_in_struct.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.nested_structs_arrays.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.nested_structs_arrays.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.sampler2D_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.sampler2D_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.samplerCube_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_array.sampler2D_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_array.sampler2D_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_full.basic_array.sampler2D_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_full.basic_array.sampler2D_both
dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_full.array_in_struct.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_full.array_in_struct.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_partial.basic_array.sampler2D_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_partial.basic_array.sampler2D_both
dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_partial.array_in_struct.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_partial.array_in_struct.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.value.assigned.unused_uniforms.sampler2D_samplerCube_vertex
dEQP-GLES2.functional.uniform_api.value.assigned.unused_uniforms.sampler2D_samplerCube_both
dEQP-GLES2.functional.uniform_api.random.0
dEQP-GLES2.functional.uniform_api.random.3
dEQP-GLES2.functional.uniform_api.random.6
dEQP-GLES2.functional.uniform_api.random.11
dEQP-GLES2.functional.uniform_api.random.14
dEQP-GLES2.functional.uniform_api.random.21
dEQP-GLES2.functional.uniform_api.random.22
dEQP-GLES2.functional.uniform_api.random.24
dEQP-GLES2.functional.uniform_api.random.25
dEQP-GLES2.functional.uniform_api.random.29
dEQP-GLES2.functional.uniform_api.random.30
dEQP-GLES2.functional.uniform_api.random.32
dEQP-GLES2.functional.uniform_api.random.33
dEQP-GLES2.functional.uniform_api.random.37
dEQP-GLES2.functional.uniform_api.random.41
dEQP-GLES2.functional.uniform_api.random.49
dEQP-GLES2.functional.uniform_api.random.51
dEQP-GLES2.functional.uniform_api.random.55
dEQP-GLES2.functional.uniform_api.random.61
dEQP-GLES2.functional.uniform_api.random.69
dEQP-GLES2.functional.uniform_api.random.72
dEQP-GLES2.functional.uniform_api.random.78
dEQP-GLES2.functional.uniform_api.random.79
dEQP-GLES2.functional.uniform_api.random.82
dEQP-GLES2.functional.uniform_api.random.87
dEQP-GLES2.functional.uniform_api.random.88
dEQP-GLES2.functional.uniform_api.random.94
dEQP-GLES2.functional.uniform_api.random.95
dEQP-GLES2.functional.uniform_api.random.96

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Marek Vasut <marex@denx.de>
4 years agoetnaviv: check if MSAA is supported
Christian Gmeiner [Wed, 1 Jan 2020 21:36:10 +0000 (22:36 +0100)]
etnaviv: check if MSAA is supported

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Jonathan Marek <jonathan@marek.ca>
4 years agou_vbuf: don't try to delete NULL driver CSO
Iago Toral Quiroga [Thu, 2 Jan 2020 09:10:57 +0000 (10:10 +0100)]
u_vbuf: don't try to delete NULL driver CSO

Since 18a8c3f7f11 we don't create a driver CSO if there are any
incompatible elements, so only ask backends to delete it if it exists.

Fixes multiple CTS crashes in V3D.

Fixes: 18a8c3f7f11 ("u_vbuf: Only create driver CSO if no incompatible elements")
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
4 years agoiris: Set nir_shader_compiler_options::unify_interfaces.
Kenneth Graunke [Mon, 17 Jun 2019 22:12:25 +0000 (17:12 -0500)]
iris: Set nir_shader_compiler_options::unify_interfaces.

This is technically enabling the option in the common intel backend
code, but only the st/nir linker uses the option, so it's iris-only.

Fixes Piglit's spec/glsl-1.50/execution/geometry/clip-distance-vs-gs-out

Closes: #2274
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3249>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3249>

4 years agost/nir: Optionally unify inputs_read/outputs_written when linking.
Kenneth Graunke [Mon, 17 Jun 2019 22:10:06 +0000 (17:10 -0500)]
st/nir: Optionally unify inputs_read/outputs_written when linking.

i965 and iris use inputs_read/outputs_written for a shader stage to
determine the layout of input and output storage.  Adjacent stages must
agree on the layout, so adjacent input/output bitfields must match.

This patch adds a new nir_shader_compiler_options::unify_interfaces
flag which asks the linker to unify the input/output interfaces between
adjacent stages.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3249>

4 years agointel: Drop Gen11 WaBTPPrefetchDisable workaround
Kenneth Graunke [Thu, 2 Jan 2020 01:38:01 +0000 (17:38 -0800)]
intel: Drop Gen11 WaBTPPrefetchDisable workaround

This isn't needed on production Icelake hardware.

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3250>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3250>