mesa.git
4 years agonir: Filter modes of scoped memory barrier in nir_opt_load_store_vectorize
Caio Marcelo de Oliveira Filho [Sat, 11 Jan 2020 01:33:31 +0000 (17:33 -0800)]
nir: Filter modes of scoped memory barrier in nir_opt_load_store_vectorize

Otherwise a scoped memory barrier containing nir_var_mem_ubo (which
memoryBarrier() does lower to) would incorrectly prevent the
optimization to happen in UBOs.

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

4 years agonir: Add a find_variable_with_[driver_]location helper
Jason Ekstrand [Thu, 23 Jul 2020 04:37:27 +0000 (23:37 -0500)]
nir: Add a find_variable_with_[driver_]location helper

We've hand-rolled this loop 10 places and those are just the ones I
found easily.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

4 years agonir/gl_nir_linker: Call add_vars_with_modes once for GL_PROGRAM_INPUT
Jason Ekstrand [Tue, 21 Jul 2020 16:55:27 +0000 (11:55 -0500)]
nir/gl_nir_linker: Call add_vars_with_modes once for GL_PROGRAM_INPUT

Now that nir_foreach_variable_with_modes can handle multiple modes at
one time, we can simplify things a bit and only walk the list once.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

4 years agonir/split_per_member_structs: Inline split_variables_in_list
Jason Ekstrand [Tue, 21 Jul 2020 16:32:38 +0000 (11:32 -0500)]
nir/split_per_member_structs: Inline split_variables_in_list

This lets us do one list walk instead of three.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

4 years agonir: Use a single list for all shader variables
Jason Ekstrand [Mon, 20 Jul 2020 21:30:37 +0000 (16:30 -0500)]
nir: Use a single list for all shader variables

Instead of having separate lists of variables, roughly sorted by mode,
use a single list for all shader-level NIR variables.  This makes a few
list walks a bit longer here and there but list walks aren't a very
common thing in NIR at all.  On the other hand, it makes a lot of things
like validation, printing, etc. way simpler.  Also, there are a number
of cases where we move variables from inputs/outputs to globals and this
makes it way easier because we no longer have to move them between
lists.  We only have to deal with that if moving them from the shader to
a nir_function_impl.

Reviewed-by: Rob Clark <robdclark@chromium.org>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

4 years agogallium/ttn: Use variable create/add helpers
Jason Ekstrand [Tue, 21 Jul 2020 17:15:27 +0000 (12:15 -0500)]
gallium/ttn: Use variable create/add helpers

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

4 years agomesa/ptn: Use nir_variable_create
Jason Ekstrand [Tue, 21 Jul 2020 17:09:28 +0000 (12:09 -0500)]
mesa/ptn: Use nir_variable_create

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

4 years agoaco: Use nir_foreach_variable_with_modes to walk SSBOs
Jason Ekstrand [Tue, 21 Jul 2020 16:57:21 +0000 (11:57 -0500)]
aco: Use nir_foreach_variable_with_modes to walk SSBOs

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

4 years agopanfrost: Use nir_foreach_variable_with_modes in pan_compile
Jason Ekstrand [Tue, 21 Jul 2020 23:13:34 +0000 (18:13 -0500)]
panfrost: Use nir_foreach_variable_with_modes in pan_compile

Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>

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

4 years agopanfrost/midgard: Make search_var take a nir_shader and mode
Jason Ekstrand [Mon, 20 Jul 2020 21:07:11 +0000 (16:07 -0500)]
panfrost/midgard: Make search_var take a nir_shader and mode

Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>

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

4 years agor600/sfn: Use nir_foreach_variable_with_modes in IO vectorization
Jason Ekstrand [Tue, 21 Jul 2020 23:21:56 +0000 (18:21 -0500)]
r600/sfn: Use nir_foreach_variable_with_modes in IO vectorization

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

4 years agor600/sfn/lower_tex: Get rid of the lower_sampler vector
Jason Ekstrand [Wed, 22 Jul 2020 16:26:14 +0000 (11:26 -0500)]
r600/sfn/lower_tex: Get rid of the lower_sampler vector

We can get the result type information easily from nir_tex_instr itself
by looking at dest_type.  There's no reason to construct a vector and
try to index into it.

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

4 years agor600/sfn/lower_tess_io: Rework get_tcs_varying_offset
Jason Ekstrand [Mon, 20 Jul 2020 21:04:40 +0000 (16:04 -0500)]
r600/sfn/lower_tess_io: Rework get_tcs_varying_offset

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

4 years agofreedreno/ir3_cmdline: Rework i/o variable fixup
Jason Ekstrand [Mon, 20 Jul 2020 20:53:59 +0000 (15:53 -0500)]
freedreno/ir3_cmdline: Rework i/o variable fixup

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

4 years agolima/standalone: Rework i/o variable fixup
Jason Ekstrand [Mon, 20 Jul 2020 20:48:22 +0000 (15:48 -0500)]
lima/standalone: Rework i/o variable fixup

Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5966>

4 years agofreedreno/ir3_lower_tess: Rework var list helpers
Jason Ekstrand [Mon, 20 Jul 2020 20:16:02 +0000 (15:16 -0500)]
freedreno/ir3_lower_tess: Rework var list helpers

They now take a nir_shader and a nir_variable_mode

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

4 years agonir/gl_nir_linker: Use nir_foreach_variable_with_modes
Jason Ekstrand [Tue, 21 Jul 2020 16:54:19 +0000 (11:54 -0500)]
nir/gl_nir_linker: Use nir_foreach_variable_with_modes

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

4 years agonir/lower_variable_initializers: Restrict the modes we lower
Jason Ekstrand [Tue, 21 Jul 2020 23:46:24 +0000 (18:46 -0500)]
nir/lower_variable_initializers: Restrict the modes we lower

This is not a functional change because these are the only modes we
handle.  All others get silently ignored.

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

4 years agonir/split_per_member_structs: Use nir_variable_with_modes_safe
Jason Ekstrand [Tue, 21 Jul 2020 16:31:00 +0000 (11:31 -0500)]
nir/split_per_member_structs: Use nir_variable_with_modes_safe

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

4 years agonir/lower_uniforms_to_ubo: Use nir_foreach_variable_with_modes
Jason Ekstrand [Tue, 21 Jul 2020 16:22:23 +0000 (11:22 -0500)]
nir/lower_uniforms_to_ubo: Use nir_foreach_variable_with_modes

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

4 years agonir/lower_two_sided_color: Use nir_variable_create
Jason Ekstrand [Tue, 21 Jul 2020 16:18:29 +0000 (11:18 -0500)]
nir/lower_two_sided_color: Use nir_variable_create

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

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>

4 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>