mesa.git
3 years agonir/io_to_vector: Use nir_foreach_variable_with_modes
Jason Ekstrand [Tue, 21 Jul 2020 16:13:04 +0000 (11:13 -0500)]
nir/io_to_vector: Use nir_foreach_variable_with_modes

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

3 years agonir/lower_io_to_temporaries: Use a separate list for new inputs
Jason Ekstrand [Tue, 21 Jul 2020 14:51:05 +0000 (09:51 -0500)]
nir/lower_io_to_temporaries: Use a separate list for new inputs

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

3 years agonir: Use a nir_shader and mode in lower_clip_cull_distance_arrays
Jason Ekstrand [Mon, 20 Jul 2020 22:34:42 +0000 (17:34 -0500)]
nir: Use a nir_shader and mode in lower_clip_cull_distance_arrays

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

3 years agonir/lower_amul: Add a variable mode check
Jason Ekstrand [Mon, 20 Jul 2020 22:31:04 +0000 (17:31 -0500)]
nir/lower_amul: Add a variable mode check

This loop should only apply to UBOs and SSBOs because max_slot is never
used for normal uniforms.

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

3 years agonir: Split nir_index_vars into two functions
Jason Ekstrand [Mon, 20 Jul 2020 21:49:46 +0000 (16:49 -0500)]
nir: Split nir_index_vars into two functions

We also very slightly change the semantics.  It no longer is one index
per list for global variables and is a single index over-all.

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

3 years agonir/split_vars: Add mode checks to list walks
Jason Ekstrand [Mon, 20 Jul 2020 20:04:45 +0000 (15:04 -0500)]
nir/split_vars: Add mode checks to list walks

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

3 years agost/nir: Rework fixup_varying_slots
Jason Ekstrand [Mon, 20 Jul 2020 20:57:45 +0000 (15:57 -0500)]
st/nir: Rework fixup_varying_slots

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

3 years agonir/linking: Rework some internal helpers
Jason Ekstrand [Mon, 20 Jul 2020 22:15:27 +0000 (17:15 -0500)]
nir/linking: Rework some internal helpers

Instead of taking a variable list, take a nir_shader and mode.

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

3 years agonir: Take a shader and variable mode in nir_assign_io_var_locations
Jason Ekstrand [Mon, 20 Jul 2020 19:42:53 +0000 (14:42 -0500)]
nir: Take a shader and variable mode in nir_assign_io_var_locations

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

3 years agonir: Take a nir_shader and variable mode in assign_var_locations
Jason Ekstrand [Mon, 20 Jul 2020 19:51:04 +0000 (14:51 -0500)]
nir: Take a nir_shader and variable mode in assign_var_locations

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

3 years agonir: Add and use a nir_variable_list_for_mode helper
Jason Ekstrand [Mon, 20 Jul 2020 19:32:01 +0000 (14:32 -0500)]
nir: Add and use a nir_variable_list_for_mode helper

We also add a new list iterator which takes a modes bitfield and
automatically figures out which list to use.  In the future, this
iterator will work for multiple modes but today it assumes a single mode
thanks to the behavior of nir_variable_list_for_mode.  This also doesn't
work for function_temp variables.

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

3 years agonir: Add a nir_foreach_gl_uniform_variable helper for GL linking
Jason Ekstrand [Mon, 20 Jul 2020 19:09:50 +0000 (14:09 -0500)]
nir: Add a nir_foreach_gl_uniform_variable helper for GL linking

There are a bunch of cases where we really do want to walk the list that
is nir->uniforms because we want all things declared "uniform" in the
GLSL.  Add a helper for this but restrict it to the GL linking code.

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

3 years agonir: Add a nir_foreach_uniform_variable helper
Jason Ekstrand [Sat, 18 Jul 2020 23:45:18 +0000 (18:45 -0500)]
nir: Add a nir_foreach_uniform_variable helper

This one's a bit more complex because it filters off only those
variables with mode == nir_var_uniform.  As such, it's not exactly a
drop-in replacement for nir_foreach_variable(var, &nir->uniforms).

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

3 years agonir: Add a nir_foreach_function_temp_variable helper
Jason Ekstrand [Wed, 20 May 2020 15:18:14 +0000 (10:18 -0500)]
nir: Add a nir_foreach_function_temp_variable helper

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

3 years agonir: Add nir_foreach_shader_in/out_variable helpers
Jason Ekstrand [Sat, 18 Jul 2020 23:24:25 +0000 (18:24 -0500)]
nir: Add nir_foreach_shader_in/out_variable helpers

Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

3 years agonir/dead_variables: Respect the modes passed to remove_dead_vars
Jason Ekstrand [Tue, 21 Jul 2020 20:15:43 +0000 (15:15 -0500)]
nir/dead_variables: Respect the modes passed to remove_dead_vars

For the most part, this doesn't actually matter today.  We already only
call remove_dead_vars on the lists that are specified in the modes.  The
only functional change here is for the uniform, mem_ubo, and mem_ssbo
modes because they share a list.  If nir_remove_dead_variables is called
with a mode of nir_var_uniform, it will no longer remove UBOs or SSBOs,
for instance.

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

3 years agonir: Take a mode in remove_unused_io_vars
Jason Ekstrand [Wed, 20 May 2020 15:09:05 +0000 (10:09 -0500)]
nir: Take a mode in remove_unused_io_vars

Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

3 years agodocs: change "Fixes:" tag example to match git fixes output
Frank Binns [Tue, 28 Jul 2020 16:54:05 +0000 (17:54 +0100)]
docs: change "Fixes:" tag example to match git fixes output

The "Fixes:" tag example has the commit title in double quotes, whereas the
suggested git fixes alias, a couple of lines below, also adds some outer
parenthesis.

Although there doesn't appear to be a consistent format for the "Fixes:" tag,
other than it should be a git commit sha followed by the commit title, the
information in the docs should at least be consistent. As the "Fixes:" tag was
inspired by the Linux kernel, which does have parenthesis, update the example to
match the git fixes output.

Signed-off-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6106>

3 years agofreedreno/rnn: add schema validation
Rob Clark [Tue, 28 Jul 2020 16:15:05 +0000 (09:15 -0700)]
freedreno/rnn: add schema validation

Now that all the schema validation issues are fixed, enable xml
validation according to stylesheet in rnn.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6107>

3 years agofreedreno/rnn: schema updates for dynamic/irregular offsets
Rob Clark [Tue, 28 Jul 2020 18:56:32 +0000 (11:56 -0700)]
freedreno/rnn: schema updates for dynamic/irregular offsets

Really we want to require one-of offset/offsets/doffsets.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6107>

3 years agofreedreno/registers/mdp5: fix validation error
Rob Clark [Tue, 28 Jul 2020 18:54:58 +0000 (11:54 -0700)]
freedreno/registers/mdp5: fix validation error

Empty enums are not allowed.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6107>

3 years agofreedreno/rnn: fix use-group
Rob Clark [Tue, 28 Jul 2020 18:53:26 +0000 (11:53 -0700)]
freedreno/rnn: fix use-group

The schema describes the attribute as "ref" rather than "name".  Which
makes more sense.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6107>

3 years agofreedreno/rnn: allow name to be optional in arrays
Rob Clark [Tue, 28 Jul 2020 18:01:02 +0000 (11:01 -0700)]
freedreno/rnn: allow name to be optional in arrays

We are using unnamed arrays to describe repeating portions of a pm4
packet.  So allow the name to be optional.  Instead of just using
the empty-string hack, drop the attribute.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6107>

3 years agofreedreno/rnn: add "addvariant" to schema
Rob Clark [Tue, 28 Jul 2020 17:52:37 +0000 (10:52 -0700)]
freedreno/rnn: add "addvariant" to schema

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6107>

3 years agofreedreno/rnn: describe copyright element in schema
Rob Clark [Tue, 28 Jul 2020 17:51:50 +0000 (10:51 -0700)]
freedreno/rnn: describe copyright element in schema

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6107>

3 years agofreedreno/registers/adreno_pm4: fix validation errors
Rob Clark [Tue, 28 Jul 2020 17:26:31 +0000 (10:26 -0700)]
freedreno/registers/adreno_pm4: fix validation errors

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6107>

3 years agofreedreno/registers/a4xx: fix validation error
Rob Clark [Tue, 28 Jul 2020 17:10:14 +0000 (10:10 -0700)]
freedreno/registers/a4xx: fix validation error

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6107>

3 years agofreedreno/registers/a2xx: fix validation error
Rob Clark [Tue, 28 Jul 2020 17:07:55 +0000 (10:07 -0700)]
freedreno/registers/a2xx: fix validation error

And bonus whitespace fix.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6107>

3 years agofreedreno/rnn: add variants/varset to domain
Rob Clark [Tue, 28 Jul 2020 17:03:06 +0000 (10:03 -0700)]
freedreno/rnn: add variants/varset to domain

We have already been using this to describe pm4 packets that are
specific to certain generations.

Maybe we should introduce a new "packet" element type instead.  But
first lets just get validation working with what we already use.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6107>

3 years agofreedreno/rnn: relax Hexadecimal to HexOrNumber
Rob Clark [Tue, 28 Jul 2020 16:59:58 +0000 (09:59 -0700)]
freedreno/rnn: relax Hexadecimal to HexOrNumber

We are already using non-hex offsets to describe pm4 packet payloads.
Let's just permit this in the schema, rather than updating all the xml
to use hex.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6107>

3 years agofreedreno/rnn: add radix/align
Rob Clark [Tue, 28 Jul 2020 16:57:11 +0000 (09:57 -0700)]
freedreno/rnn: add radix/align

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6107>

3 years agofreedreno/rnn: add high/low/pos to registers
Rob Clark [Tue, 28 Jul 2020 16:55:10 +0000 (09:55 -0700)]
freedreno/rnn: add high/low/pos to registers

This was added recently in rnn, but the schema was not updated.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6107>

3 years agofreedreno/rnn: add relaxed boolean type
Rob Clark [Tue, 28 Jul 2020 16:47:38 +0000 (09:47 -0700)]
freedreno/rnn: add relaxed boolean type

In the schema, boolean means strictly "true" or "false".  But rnn
parsing code was looking for "yes"/"1"/"no"/"0".  So split the
difference, and add a relaxed boolean type, and update rnn to also
accept "true" or "false".

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6107>

3 years agofreedreno/rnn: update schema for 'pos'
Rob Clark [Tue, 28 Jul 2020 16:36:55 +0000 (09:36 -0700)]
freedreno/rnn: update schema for 'pos'

Ideally we'd like to express that *either* 'high' + 'low' OR 'pos' is
required, but it doesn't appear that this is possible.  But the rnn
parsing code should still enforce this.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6107>

3 years agofreedreno/rnn: rename schema file
Rob Clark [Tue, 28 Jul 2020 16:04:04 +0000 (09:04 -0700)]
freedreno/rnn: rename schema file

All of the xml references rules-ng.xsd, not rules-ng-ng.xsd

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6107>

3 years agofreedreno/rnn: add error helper
Rob Clark [Tue, 28 Jul 2020 16:00:12 +0000 (09:00 -0700)]
freedreno/rnn: add error helper

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6107>

3 years agofreedreno/rnn: split out helper to find files
Rob Clark [Tue, 28 Jul 2020 15:30:13 +0000 (08:30 -0700)]
freedreno/rnn: split out helper to find files

So we can re-use it to locate the schema file.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6107>

3 years agofreedreno/tools: check rnn parse status
Rob Clark [Tue, 28 Jul 2020 14:55:49 +0000 (07:55 -0700)]
freedreno/tools: check rnn parse status

Don't silently ignore issues.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6107>

3 years agoci: Build kernels and rootfs for x86 devices
Tomeu Vizoso [Fri, 3 Jul 2020 08:04:20 +0000 (10:04 +0200)]
ci: Build kernels and rootfs for x86 devices

For testing Mesa on LAVA devices with the amd64 architecture, build
kernels and rootfs in the same way as we do for arm64 and armhf.

Also add a few trivial jobs for a specific AMD Chromebook.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Rohan Garg <rohan.garg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5903>

3 years agoci: Split building of libdrm to its own script
Tomeu Vizoso [Mon, 27 Jul 2020 12:42:42 +0000 (14:42 +0200)]
ci: Split building of libdrm to its own script

As we are doing that in several places already and we'll need to build
in others as well.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Rohan Garg <rohan.garg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5903>

3 years agoci: Don't ship vk-build-programs after building dEQP
Tomeu Vizoso [Mon, 27 Jul 2020 10:32:47 +0000 (12:32 +0200)]
ci: Don't ship vk-build-programs after building dEQP

As it's not needed at runtime.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Rohan Garg <rohan.garg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5903>

3 years agoci: Fix URL for glslang
Tomeu Vizoso [Mon, 27 Jul 2020 12:59:19 +0000 (14:59 +0200)]
ci: Fix URL for glslang

master-tot doesn't have that zip file any more, but the just made
release still does.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Rohan Garg <rohan.garg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5903>

3 years agoci: Print load stats after running dEQP
Tomeu Vizoso [Tue, 28 Jul 2020 06:22:34 +0000 (08:22 +0200)]
ci: Print load stats after running dEQP

So we can get an idea if what are the bottlenecks when looking for
opportunities to speed things up.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Rohan Garg <rohan.garg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6101>

3 years agoci: Always print status code of HTTP uploads in tracie
Tomeu Vizoso [Tue, 28 Jul 2020 05:47:40 +0000 (07:47 +0200)]
ci: Always print status code of HTTP uploads in tracie

I'm seeing occasional unexpected 403 errors when uploading artifacts.
Print the response in case MinIO is telling us why.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Rohan Garg <rohan.garg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6101>

3 years agofreedreno: Add trace for CP_DRAW_INDIRECT_MULTI
Connor Abbott [Tue, 28 Jul 2020 12:49:05 +0000 (14:49 +0200)]
freedreno: Add trace for CP_DRAW_INDIRECT_MULTI

Test the indirect count case. This is recorded with turnip.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6104>

3 years agofreedreno/cffdec: Handle CP_DRAW_INDIRECT_MULTI like other draws
Connor Abbott [Tue, 28 Jul 2020 11:47:15 +0000 (13:47 +0200)]
freedreno/cffdec: Handle CP_DRAW_INDIRECT_MULTI like other draws

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6104>

3 years agofreedreno/rnn: Support stripes in rnndec_decodereg
Connor Abbott [Tue, 28 Jul 2020 11:42:23 +0000 (13:42 +0200)]
freedreno/rnn: Support stripes in rnndec_decodereg

We'll need this for finding where INDIRECT/STRIDE are in
CP_DRAW_INDIRECT_MULTI, since they are in different locations in each
variant.

This is tricky because we need to bubble up success/failure to the upper
levels, and 0 could be a valid offset if the stripe is inside an array
or in a packet. Hence we refactor tryreg to return success/failure
separately, although I stopped short of modifying rnndec_decodereg
itself.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6104>

3 years agotu: Dump CP_DRAW_INDIRECT_MULTI draw BO's
Connor Abbott [Tue, 28 Jul 2020 10:57:08 +0000 (12:57 +0200)]
tu: Dump CP_DRAW_INDIRECT_MULTI draw BO's

These will be decoded by cffdump.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6104>

3 years agobifrost: Fix packing of ADD_FEXP2_FAST
Chris Forbes [Tue, 28 Jul 2020 21:42:33 +0000 (14:42 -0700)]
bifrost: Fix packing of ADD_FEXP2_FAST

This was being packed as 1-src and so the Src1 was not set up properly.
It only worked by accident.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6111>

3 years agobifrost: Honor src swizzle in special math ops
Chris Forbes [Tue, 28 Jul 2020 19:40:44 +0000 (12:40 -0700)]
bifrost: Honor src swizzle in special math ops

Most ops use the common handling in emit_alu in order to convert NIR
sources to bifrost sources, but the "special" math op lowering handrolls
the conversion (due to needing to reference the same source multiple
times).

Unfortunately, that handrolled lowering did not consider that there
might be a non-identity swizzle on the source. In this case we would
reference the wrong component of the source and generate garbage.

Fixes all but two of the remaining failures on G31 in:
  dEQP-GLES2.functional.shaders.operator.exponential.*highp*

The following tests are still broken due to some other issue:
  dEQP-GLES2.functional.shaders.operator.exponential.exp2.highp_float_fragment
  dEQP-GLES2.functional.shaders.operator.exponential.exp2.highp_vec2_fragment

Signed-off-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6108>

3 years agoprevent multiply defined symbols
Daryl W. Grunau [Thu, 23 Jul 2020 21:39:07 +0000 (15:39 -0600)]
prevent multiply defined symbols

Without this patch applied gcc@10.1.0 fails to compile with the following
error (note mesa@18.3.6 but the latest release also posseses this problem):

  ld: ../../../../src/gallium/auxiliary/.libs/libgallium.a(u_debug_symbol.o):/tmp/spack/spack-stage/spack-stage-mesa-18.3.6-be7kyg2dyxwktir3zrai27n6a6coadab/spack-src/src/galli um/auxiliary/util/u_debug_symbol.c:273: multiple definition of `symbols_hash'; ../../../../src/gallium/auxiliary/.libs/libgallium.a(u_debug_stack.o):/tmp/spa ck/spack-stage/spack-stage-mesa-18.3.6-be7kyg2dyxwktir3zrai27n6a6coadab/spack-src/src/gallium/auxiliary/util/u_debug_stack.c:49: first defined here
  collect2: error: ld returned 1 exit status
  make[4]: *** [libGL.la] Error 1
  make[4]: Leaving directory `/tmp/spack/spack-stage/spack-stage-mesa-18.3.6-be7kyg2dyxwktir3zrai27n6a6coadab/spack-src/src/gallium/targets/libgl-xlib'
  make[3]: *** [all-recursive] Error 1
  make[3]: Leaving directory `/tmp/spack/spack-stage/spack-stage-mesa-18.3.6-be7kyg2dyxwktir3zrai27n6a6coadab/spack-src/src/gallium'
  make[2]: *** [all-recursive] Error 1
  make[2]: Leaving directory `/tmp/spack/spack-stage/spack-stage-mesa-18.3.6-be7kyg2dyxwktir3zrai27n6a6coadab/spack-src/src'
  make[1]: *** [all] Error 2
  make[1]: Leaving directory `/tmp/spack/spack-stage/spack-stage-mesa-18.3.6-be7kyg2dyxwktir3zrai27n6a6coadab/spack-src/src'
  make: *** [all-recursive] Error 1

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3298
Cc: mesa-stable
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6053>

3 years agoamd: enable displayable DCC for everything newer than Navi1x
Marek Olšák [Mon, 27 Jul 2020 23:24:31 +0000 (19:24 -0400)]
amd: enable displayable DCC for everything newer than Navi1x

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6100>

3 years agoamd: add support for Navy Flounder
Marek Olšák [Mon, 27 Jul 2020 23:13:51 +0000 (19:13 -0400)]
amd: add support for Navy Flounder

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6100>

3 years agoamd: rename SIENNA -> SIENNA_CICHLID
Marek Olšák [Mon, 27 Jul 2020 23:11:11 +0000 (19:11 -0400)]
amd: rename SIENNA -> SIENNA_CICHLID

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6100>

3 years agoaco: create acq+rel barriers instead of acq/rel
Rhys Perry [Wed, 22 Jul 2020 10:47:20 +0000 (11:47 +0100)]
aco: create acq+rel barriers instead of acq/rel

NIR doesn't have atomic loads/stores, so we have to workaround that with
this for dEQP-VK.memory_model.* to pass.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4905>

3 years agoaco: improve workgroup-scope and lower vmem/smem barriers
Rhys Perry [Wed, 13 May 2020 15:05:46 +0000 (16:05 +0100)]
aco: improve workgroup-scope and lower vmem/smem barriers

No fossil-db changes on Navi.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4905>

3 years agoaco: improve sync_info for TCS output stores
Rhys Perry [Tue, 5 May 2020 12:30:12 +0000 (13:30 +0100)]
aco: improve sync_info for TCS output stores

Stop scheduling them as SSBO stores.

No fossil-db changes on Navi.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4905>

3 years agoaco: use storage_scratch
Rhys Perry [Tue, 5 May 2020 10:54:59 +0000 (11:54 +0100)]
aco: use storage_scratch

fossil-db (Navi):
Totals from 9 (0.01% of 114665) affected shaders:
VMEM: 14456 -> 15312 (+5.92%)
VClause: 336 -> 327 (-2.68%)

Helps 9 Dark Souls 3 shaders a little.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4905>

3 years agoaco: enable value numbering of s_buffer_load_*
Rhys Perry [Mon, 29 Jun 2020 12:22:19 +0000 (13:22 +0100)]
aco: enable value numbering of s_buffer_load_*

fossil-db (Navi):
Totals from 33 (0.03% of 114665) affected shaders:
SGPRs: 2176 -> 2152 (-1.10%)
VGPRs: 1572 -> 1564 (-0.51%)
CodeSize: 115988 -> 115472 (-0.44%)
Instrs: 21459 -> 21385 (-0.34%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4905>

3 years agonir,radv/aco: add and use pass to lower make available/visible barriers
Rhys Perry [Fri, 1 May 2020 13:32:31 +0000 (14:32 +0100)]
nir,radv/aco: add and use pass to lower make available/visible barriers

Lower them to ACCESS_COHERENT to simplify the backend and
probably give better performance than invalidating or writing back the
entire L0/L1 cache.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4905>

3 years agoaco: consider intrinsic access in visit_{load,store}_image
Rhys Perry [Fri, 24 Jul 2020 15:38:33 +0000 (16:38 +0100)]
aco: consider intrinsic access in visit_{load,store}_image

radv_nir_lower_memory_model will use this.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4905>

3 years agoradv/aco,aco: use scoped barriers
Rhys Perry [Wed, 13 May 2020 15:12:39 +0000 (16:12 +0100)]
radv/aco,aco: use scoped barriers

fossil-db (Navi):
Totals from 109 (0.08% of 132058) affected shaders:
SGPRs: 5416 -> 5424 (+0.15%)
CodeSize: 460500 -> 460508 (+0.00%); split: -0.07%, +0.07%
Instrs: 87278 -> 87272 (-0.01%); split: -0.09%, +0.09%
Cycles: 2241996 -> 2241852 (-0.01%); split: -0.04%, +0.04%
VMEM: 33868 -> 35539 (+4.93%); split: +5.14%, -0.20%
SMEM: 7183 -> 7184 (+0.01%); split: +0.36%, -0.35%
VClause: 1857 -> 1882 (+1.35%)
SClause: 2052 -> 2055 (+0.15%); split: -0.05%, +0.19%
Copies: 6377 -> 6380 (+0.05%); split: -0.02%, +0.06%
PreSGPRs: 3391 -> 3392 (+0.03%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4905>

3 years agoaco: rework barriers and replace can_reorder
Rhys Perry [Fri, 26 Jun 2020 14:54:22 +0000 (15:54 +0100)]
aco: rework barriers and replace can_reorder

fossil-db (Navi):
Totals from 273 (0.21% of 132058) affected shaders:
CodeSize: 937472 -> 936556 (-0.10%)
Instrs: 158874 -> 158648 (-0.14%)
Cycles: 13563516 -> 13562612 (-0.01%)
VMEM: 85246 -> 85244 (-0.00%)
SMEM: 21407 -> 21310 (-0.45%); split: +0.05%, -0.50%
VClause: 9321 -> 9317 (-0.04%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4905>

3 years agoaco: add missing add_to_hazard_query
Rhys Perry [Fri, 24 Jul 2020 14:49:43 +0000 (15:49 +0100)]
aco: add missing add_to_hazard_query

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4905>

3 years agobifrost: Add support for nir_op_iabs
Chris Forbes [Mon, 27 Jul 2020 18:51:31 +0000 (11:51 -0700)]
bifrost: Add support for nir_op_iabs

Signed-off-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6098>

3 years agoanv: fix descriptor set free
Lionel Landwerlin [Mon, 27 Jul 2020 09:06:17 +0000 (12:06 +0300)]
anv: fix descriptor set free

Once we start going through the free list of the descriptor set pool,
we might use a free entry larger than the descriptor set we want to
allocate. When we free that descriptor set, we use the size of the set
rather than the size of the entry that was picked. This leads to leaks
of some amount of descriptor set pool.

This fix saves the size of the entry in the descriptor set so we know
what amount of the pool needs to freed.

v2: Don't bother adding a new size field

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Cc: <mesa-stable@lists.freedesktop.org>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3324
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6084>

3 years agonine: fix incorrect calculation of layer count for 3D textures
Yevhenii Kolesnikov [Fri, 26 Jun 2020 10:40:43 +0000 (13:40 +0300)]
nine: fix incorrect calculation of layer count for 3D textures

Volume textures don't have a concept of "layers"

v1: set last_layer to zero for 3D textures (Axel Davy)

Cc: <mesa-stable@lists.freedesktop.org>
Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com>
Reviewed-by: Axel Davy <davyaxel0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5808>

3 years agopanfrost: Allow PIPE_TEXTURE_1D_ARRAY textures
Icecream95 [Mon, 27 Jul 2020 09:55:59 +0000 (21:55 +1200)]
panfrost: Allow PIPE_TEXTURE_1D_ARRAY textures

Fixes a crash with wined3d.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6085>

3 years agoi965: propagate error from gen_perf_begin_query to glBeginPerfQueryINTEL
Marcin Ślusarz [Tue, 28 Jul 2020 09:55:16 +0000 (11:55 +0200)]
i965: propagate error from gen_perf_begin_query to glBeginPerfQueryINTEL

Otherwise mesa will crash in glEndPerfQueryINTEL because OA BO is NULL.

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Cc: <mesa-stable@lists.freedesktop.org>
Reviewed-by: Mark Janes <mark.a.janes@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6094>

3 years agoiris: propagate error from gen_perf_begin_query to glBeginPerfQueryINTEL
Marcin Ślusarz [Mon, 27 Jul 2020 19:10:25 +0000 (21:10 +0200)]
iris: propagate error from gen_perf_begin_query to glBeginPerfQueryINTEL

Otherwise mesa will crash in glEndPerfQueryINTEL because OA BO is NULL.

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Cc: <mesa-stable@lists.freedesktop.org>
Reviewed-by: Mark Janes <mark.a.janes@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6094>

3 years agofreedreno/rnn: Return success when parsing addvariant
Connor Abbott [Tue, 28 Jul 2020 09:33:57 +0000 (11:33 +0200)]
freedreno/rnn: Return success when parsing addvariant

This was missed when I initially added addvariant.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6070>

3 years agofreedreno/ci: add a2xx trace to CI job
Rob Clark [Tue, 28 Jul 2020 00:22:42 +0000 (17:22 -0700)]
freedreno/ci: add a2xx trace to CI job

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6070>

3 years agofreedreno: deduplicate a2xx disasm
Rob Clark [Sun, 26 Jul 2020 16:47:04 +0000 (09:47 -0700)]
freedreno: deduplicate a2xx disasm

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6070>

3 years agofreedreno: move a2xx disasm out of gallium
Rob Clark [Sun, 26 Jul 2020 16:44:01 +0000 (09:44 -0700)]
freedreno: move a2xx disasm out of gallium

So that it can be reused by the decode tools.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6070>

3 years agofreedreno: deduplicate a3xx+ disasm
Rob Clark [Sat, 25 Jul 2020 17:28:42 +0000 (10:28 -0700)]
freedreno: deduplicate a3xx+ disasm

Merge the extra tracking that is useful for generating stats from asm
(as opposed to ir), and for guestimating things like inputs and outputs
(mostly useful for r/e) into ir3's version and drop cffdec's version.

There is a small change in disasm output for the decode tools, in that
it no longer prints the used consts, but rather just the max accessed
const.  This is the more useful piece of information, and avoids making
the shared regmask type big enough to deal with the const reg file.
Additional error checking for invalid regids causes crashdec to bail
out sooner when decoding memory that *might* hold valid instructions.
Also, crashdec no longer prints stats, because stats aren't very useful
when trying to decode random instruction memory (which might or might
not be valid instructions).

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6070>

3 years agofreedreno: drop shader_t
Rob Clark [Sat, 25 Jul 2020 19:16:36 +0000 (12:16 -0700)]
freedreno: drop shader_t

When this code was outside of the mesa tree, we needed our own enum.
Now we can use a common one, to simplify deduplicating the disasm
code.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6070>

3 years agofreedreno/ir3: split out regmask
Rob Clark [Sat, 25 Jul 2020 18:05:20 +0000 (11:05 -0700)]
freedreno/ir3: split out regmask

To unify the ir3 disasm code, we need to add in the regmask based
register tracking from cffdec's version of the disassembler.  Split
out regmask (or at least the part that doesn't depend on ir3) so
it can be shared.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6070>

3 years agofreedreno: add CI for envytools tools
Rob Clark [Fri, 24 Jul 2020 17:34:47 +0000 (10:34 -0700)]
freedreno: add CI for envytools tools

This also tunes `.freedreno-rules` a bit so that it isn't triggered by
various tools that don't effect the driver build.

The .gitlab-ci directory is kept separate from the toplevel one so that
updates to (for example) reference decode output do not trigger all the
other-driver jobs to run.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6070>

3 years agofreedreno/afuc: warnings cleanup
Rob Clark [Fri, 24 Jul 2020 21:27:41 +0000 (14:27 -0700)]
freedreno/afuc: warnings cleanup

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6070>

3 years agofreedreno/decode: warnings cleanup
Rob Clark [Fri, 24 Jul 2020 21:14:09 +0000 (14:14 -0700)]
freedreno/decode: warnings cleanup

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6070>

3 years agofreedreno/rnn: warnings cleanup
Rob Clark [Fri, 24 Jul 2020 21:12:04 +0000 (14:12 -0700)]
freedreno/rnn: warnings cleanup

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6070>

3 years agofreedreno: slurp in afuc
Rob Clark [Fri, 24 Jul 2020 16:30:04 +0000 (09:30 -0700)]
freedreno: slurp in afuc

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6070>

3 years agofreedreno: slurp in decode tools
Rob Clark [Fri, 24 Jul 2020 00:32:36 +0000 (17:32 -0700)]
freedreno: slurp in decode tools

cffdump, crashdec, etc

At this point there is some duplication with other files in-tree (ie.
a2xx and a3xx+ disassembly), which will be cleaned up in a later commit.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6070>

3 years agofreedreno: slurp in rnn
Rob Clark [Thu, 23 Jul 2020 23:51:43 +0000 (16:51 -0700)]
freedreno: slurp in rnn

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6070>

3 years agofreedreno: slurp in rnndb
Rob Clark [Thu, 23 Jul 2020 21:59:38 +0000 (14:59 -0700)]
freedreno: slurp in rnndb

Pull in all of $envytools/rnndb (including display, etc) from envytools
commit 6ccdda33ac4d88e19d2a70e1b4edaaab5ec4b026

This changes the directory structure to match the organization in the
envytools tree.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6070>

3 years agofreedreno: make gen_header.py check parent directory
Rob Clark [Thu, 23 Jul 2020 22:28:47 +0000 (15:28 -0700)]
freedreno: make gen_header.py check parent directory

With the next commit, the xml files will be no longer be all in the same
directory.  But checking up a single directory level to resolve import
will be sufficient.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6070>

3 years agoradv: Fix host->host signalling with legacy timeline semaphores.
Bas Nieuwenhuizen [Tue, 28 Jul 2020 02:14:23 +0000 (04:14 +0200)]
radv: Fix host->host signalling with legacy timeline semaphores.

Fixes: 88d41367b8a "radv: Add timelines with a VK_KHR_timeline_semaphore impl."
Reviewed-by: Dave Airlie <airlied@redhat.com>
Tested-by: Andres Rodriguez <andresx7@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6097>

3 years agoradv: cleanup locking around timeline waiting.
Dave Airlie [Tue, 28 Jul 2020 02:27:05 +0000 (12:27 +1000)]
radv: cleanup locking around timeline waiting.

Just noticed in passing that this looked extra complicated,
Bas said it was for legacy design reasons, so clean it up.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6099>

3 years agobifrost: Add support for nir_op_imul
Chris Forbes [Sun, 26 Jul 2020 22:54:14 +0000 (15:54 -0700)]
bifrost: Add support for nir_op_imul

Unfortunately this doesn't map nicely to the existing instruction
classes, so we'll make a new one for now.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6091>

3 years agobifrost: Add support for nir_op_uge
Chris Forbes [Sun, 26 Jul 2020 19:41:17 +0000 (12:41 -0700)]
bifrost: Add support for nir_op_uge

Signed-off-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6091>

3 years agobifrost: Add support for nir_op_ishl
Chris Forbes [Sun, 26 Jul 2020 19:18:54 +0000 (12:18 -0700)]
bifrost: Add support for nir_op_ishl

Bifrost's bitwise ops include the shift capability. Previously we had
hardcoded the shift to zero in all cases.

There's room in future to emit slightly better code if a shift and a
bitwise operation can be folded together, but not going after that for
now.

This change also removes the separate BI_SHIFT instruction class as
BI_BITWISE can cover both cases.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6091>

3 years agobifrost: Add support for nir_op_inot
Chris Forbes [Sun, 26 Jul 2020 18:37:42 +0000 (11:37 -0700)]
bifrost: Add support for nir_op_inot

Signed-off-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6091>

3 years agospirv: Handle most execution modes earlier
Caio Marcelo de Oliveira Filho [Tue, 7 Jul 2020 05:58:25 +0000 (22:58 -0700)]
spirv: Handle most execution modes earlier

For convenience in e68871f6a44 ("spirv: Handle constants and types
before execution modes") we moved all execution mode parsing after the
constants and types, so that those using OpExecutionModeId could be
handled together.

Later in 84781e1f1d8 ("spirv/nir: keep track of SPV_KHR_float_controls
execution modes") we had to parse certain non-ID execution modes
before handling constants.

Instead of handling just the float controls related execution modes
early, handle all modes that don't need an ID.  This is a more
"natural" split and will allow other type handling to rely on
execution mode in the future.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6062>

3 years agobifrost: Add lowering for b2i32
Chris Forbes [Sun, 26 Jul 2020 17:43:33 +0000 (10:43 -0700)]
bifrost: Add lowering for b2i32

Since the bool representation is 0/~0, we can convert to int
just by &1.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6079>

3 years agobifrost: Document d3d/gl comparison control bit
Chris Forbes [Sun, 26 Jul 2020 17:33:06 +0000 (10:33 -0700)]
bifrost: Document d3d/gl comparison control bit

Signed-off-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6079>

3 years agobifrost: Emit "d3d" variant of comparison instructions
Chris Forbes [Sun, 26 Jul 2020 17:31:13 +0000 (10:31 -0700)]
bifrost: Emit "d3d" variant of comparison instructions

The "d3d" variant uses ~0 as the true value. This is consistent
with NIR's nir_lower_bool_to_int32 pass.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6079>

3 years agobifrost: Lower x->bool conversions to != 0
Chris Forbes [Sun, 26 Jul 2020 03:11:11 +0000 (20:11 -0700)]
bifrost: Lower x->bool conversions to != 0

Signed-off-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6079>

3 years agotu: Enable resource dynamic indexing
Connor Abbott [Mon, 27 Jul 2020 10:11:44 +0000 (12:11 +0200)]
tu: Enable resource dynamic indexing

This has actually worked since bindless support was merged.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6086>

3 years agoir3: Fix incorrect src flags for samp_tex
Connor Abbott [Mon, 27 Jul 2020 10:48:37 +0000 (12:48 +0200)]
ir3: Fix incorrect src flags for samp_tex

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6086>

3 years agoir3: Remove redundant samp_tex validation
Connor Abbott [Mon, 27 Jul 2020 10:47:43 +0000 (12:47 +0200)]
ir3: Remove redundant samp_tex validation

It's already checked in ir3_validate. This way we don't have to fix it
up for bindless.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6086>