mesa.git
18 months agodrm-shim: Let the driver choose to overwrite the first render node.
Eric Anholt [Tue, 21 Apr 2020 16:21:52 +0000 (09:21 -0700)]
drm-shim: Let the driver choose to overwrite the first render node.

When I was writing drm-shim, I was focused on the v3d kmsro case -- use my
intel device as the kmsro display device and add on a simulator-based v3d
device that we could render with.  But for the noop backends we use for
shader-db, it's a lot more useful to just overwrite the first render node
in the system so that you don't have to pass a -d <how many render nodes I
already have in my system> argument.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4664>

18 months agofreedreno: Make the slice pitch be bytes, not pixels.
Eric Anholt [Tue, 14 Apr 2020 18:14:31 +0000 (11:14 -0700)]
freedreno: Make the slice pitch be bytes, not pixels.

Back in a2xx, HW pitches were in pixels, so storing that was reasonable.
Ever since then, the HW wants pitches in bytes, and we have only one
instance of using pitch in pixels in the code (a3xx sysmem path).

Flip things around so that only a2xx has to worry about the cpp for
looking at pitches.

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

18 months agofreedreno: Introduce a "cpp_shift" value for cpp divs/muls.
Eric Anholt [Tue, 14 Apr 2020 21:35:05 +0000 (14:35 -0700)]
freedreno: Introduce a "cpp_shift" value for cpp divs/muls.

This only converts part of the driver to use it, leaving the rest to the
following commit (which inspired this one).

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

18 months agoradv: adjust the supported subgroup stages
Samuel Pitoiset [Wed, 22 Apr 2020 13:26:17 +0000 (15:26 +0200)]
radv: adjust the supported subgroup stages

VK_SHADER_STAGE_ALL now includes all ray-tracing related stages.
Noticed while comparing vulkaninfo with some other drivers.

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/4679>

18 months agoanv: force whole EU array to be powered for perf queries
Lionel Landwerlin [Mon, 2 Mar 2020 12:44:55 +0000 (14:44 +0200)]
anv: force whole EU array to be powered for perf queries

Because of functional requirements for Gen11, when perf is enabled we
only power half the EU array.

This change forces it to enable everything.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Reviewed-by: Mark Janes <mark.a.janes@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4021>

18 months agointel/perf: specify sseu configuration when supported
Lionel Landwerlin [Mon, 2 Mar 2020 12:43:30 +0000 (14:43 +0200)]
intel/perf: specify sseu configuration when supported

Because of functional requirements for Gen11, when perf is enabled we
only power half the EU array.

This change forces it to enable everything.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Reviewed-by: Mark Janes <mark.a.janes@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4021>

18 months agointel/perf: store default sseu configuration
Lionel Landwerlin [Mon, 2 Mar 2020 12:42:22 +0000 (14:42 +0200)]
intel/perf: store default sseu configuration

This is the powergating configuration of the EU array. The default is
everything powered.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Reviewed-by: Mark Janes <mark.a.janes@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4021>

18 months agoinclude/drm-uapi: bump headers
Lionel Landwerlin [Mon, 2 Mar 2020 12:04:36 +0000 (14:04 +0200)]
include/drm-uapi: bump headers

From drm-next at the following commit :

  commit 1aa63ddf726ea049279989b93b69b57ce6efd75b
  Merge: 774f1eeb18b0 14d0066b8477
  Author: Dave Airlie <airlied@redhat.com>
  Date:   Wed Apr 22 10:40:34 2020 +1000

      Merge tag 'drm-misc-next-2020-04-14' of git://anongit.freedesktop.org/drm/drm-misc into drm-next

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Reviewed-by: Mark Janes <mark.a.janes@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4021>

18 months agoradv: simplify checking for Navi1x chips
Samuel Pitoiset [Thu, 23 Apr 2020 10:36:21 +0000 (12:36 +0200)]
radv: simplify checking for Navi1x chips

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/4702>

18 months agoaco: improve code for 32-bit isign
Rhys Perry [Tue, 21 Apr 2020 18:37:25 +0000 (19:37 +0100)]
aco: improve code for 32-bit isign

No shader-db changes on Navi.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4667>

18 months agoaco: combine VALU and SALU into various VOP3 instructions
Rhys Perry [Mon, 20 Apr 2020 18:16:48 +0000 (19:16 +0100)]
aco: combine VALU and SALU into various VOP3 instructions

shader-db (Navi):
Totals from 2916 (2.28% of 127638) affected shaders:
SGPRs: 184427 -> 184283 (-0.08%); split: -0.10%, +0.02%
VGPRs: 143520 -> 143640 (+0.08%); split: -0.00%, +0.09%
CodeSize: 14913548 -> 14913288 (-0.00%); split: -0.00%, +0.00%
MaxWaves: 26034 -> 26012 (-0.08%)
Instrs: 2935435 -> 2930960 (-0.15%); split: -0.15%, +0.00%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4667>

18 months agoaco: move call to store_output_to_temps in store_ls_or_es_output earlier
Rhys Perry [Tue, 21 Apr 2020 16:09:47 +0000 (17:09 +0100)]
aco: move call to store_output_to_temps in store_ls_or_es_output earlier

Skips get_intrinsic_io_basic_offset()

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4667>

18 months agoaco: remove copy in load_input_from_temps()
Rhys Perry [Tue, 21 Apr 2020 16:09:00 +0000 (17:09 +0100)]
aco: remove copy in load_input_from_temps()

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4667>

18 months agoaco: copy-propagate p_create_vector copies of vectors
Rhys Perry [Tue, 21 Apr 2020 16:37:44 +0000 (17:37 +0100)]
aco: copy-propagate p_create_vector copies of vectors

Instead of copying the operands of the other p_create_vector and labelling
the definition with label_vec, copy the operands and label it with
label_temp so that it can be copy-propagated.

This was found while removing a redundant copy in load_input_from_temps()
which removed duplicate p_create_vector instructions.

shader-db (Navi):
Totals from 139 (0.11% of 127638) affected shaders:
VGPRs: 8472 -> 7948 (-6.19%)
CodeSize: 514592 -> 512368 (-0.43%)
MaxWaves: 1089 -> 1195 (+9.73%)
Instrs: 100214 -> 99658 (-0.55%)
Cycles: 400856 -> 398632 (-0.55%)
VMEM: 15545 -> 15338 (-1.33%)
Copies: 5140 -> 4584 (-10.82%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4667>

18 months agoaco: decrease the uses of other copy operations after splitting/removing
Rhys Perry [Wed, 22 Apr 2020 20:56:02 +0000 (21:56 +0100)]
aco: decrease the uses of other copy operations after splitting/removing

For copies like v[7:8] = v[8:9], what currently happens is:
- do_copy() will skip the second dword
- the uses of the second dword will be reduced to 0
- the copy operation will be removed from the map
and v8 will never be set to v9.

So just decrease the uses of other operations after splitting or removing
the current operation, so: "v8 = v9" will be split off, it's uses reduced
and then the new copy will be done in the next iteration.

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/4686>

18 months agomeson: correct windows-version define
Erik Faye-Lund [Wed, 22 Apr 2020 15:54:38 +0000 (17:54 +0200)]
meson: correct windows-version define

The macro "_WINVER" does nothing, the macro definitions that matter for
windows API version selection are "_WIN32_WINNT" and "WINVER".

The header "sdkddkver.h" (which is included from thousands of
different windows-headers) defines "WINVER" to the same value as
"_WIN32_WINNT" of only the latter is defined, which explains why this
works right now. But we shouldn't depend on that kind of luck, and
instead define the right maco.

Fixes: 3aee462781a ("meson: add windows compiler checks and libraries")
Acked-by: Dylan Baker <dylan@pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4681>

18 months agonir/algebraic: don't undo lowering of 8/16-bit comparisons to 32-bit
Rhys Perry [Tue, 31 Mar 2020 12:57:42 +0000 (13:57 +0100)]
nir/algebraic: don't undo lowering of 8/16-bit comparisons to 32-bit

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4387>

18 months agonir/lower_bit_size: fix lowering of {imul,umul}_high
Rhys Perry [Tue, 31 Mar 2020 12:52:43 +0000 (13:52 +0100)]
nir/lower_bit_size: fix lowering of {imul,umul}_high

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4387>

18 months agonir/lower_bit_size: fix lowering of shifts
Rhys Perry [Tue, 31 Mar 2020 12:51:32 +0000 (13:51 +0100)]
nir/lower_bit_size: fix lowering of shifts

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4387>

18 months agoradv: Use TRUNC_COORD on samplers
Joshua Ashton [Tue, 25 Feb 2020 19:24:15 +0000 (19:24 +0000)]
radv: Use TRUNC_COORD on samplers

The default behaviour (0) is: "round-nearest-even to n.6 and drop fraction when point sampling" whereas the Vulkan spec simply wants us to floor it (1) "truncate when point sampling".

See 15.6.1 in the Vulkan spec.
https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-normalized-operations

The Direct3D spec also mandates this (https://microsoft.github.io/DirectX-Specs/d3d/archive/D3D11_3_FunctionalSpec.htm#7.18.7%20Point%20Sample%20Addressing)

This fixes some point-sampling texture precision issues in some Direct3D 9 titles such as Guild Wars 2 and htoL#NiQ: The Firefly Diary that are not present on other vendors.

Fixes dEQP-VK.pipeline.sampler.exact_sampling.*

https://github.com/Joshua-Ashton/d9vk/issues/450
https://github.com/doitsujin/dxvk/issues/1433

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

18 months agoradv: make sure to export the viewport index if FS needs it
Samuel Pitoiset [Wed, 22 Apr 2020 20:21:55 +0000 (22:21 +0200)]
radv: make sure to export the viewport index if FS needs it

If FS reads gl_ViewportIndex but VS doesn't export it, it should
be zero to avoid reading garbage.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2818
Fixes: b424d49ac05 ("radv/llvm: fix exporting the viewport index if the fragment shader needs it")
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/4687>

18 months agoradeonsi: enable support for AlphaToCoverageDitherControlNV
Indrajit Kumar Das [Tue, 21 Apr 2020 10:31:50 +0000 (16:01 +0530)]
radeonsi: enable support for AlphaToCoverageDitherControlNV

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4543>

18 months agomesa: add support for AlphaToCoverageDitherControlNV
Indrajit Kumar Das [Tue, 21 Apr 2020 10:30:14 +0000 (16:00 +0530)]
mesa: add support for AlphaToCoverageDitherControlNV

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4543>

18 months agogallium: prepare framework for supporting AlphaToCoverageDitherControlNV
Indrajit Kumar Das [Tue, 21 Apr 2020 10:27:23 +0000 (15:57 +0530)]
gallium: prepare framework for supporting AlphaToCoverageDitherControlNV

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4543>

18 months agoturnip: Fix crashes when geometry shader constants aren't used
Hyunjun Ko [Thu, 23 Apr 2020 02:28:34 +0000 (02:28 +0000)]
turnip: Fix crashes when geometry shader constants aren't used

Fixes dEQP-VK.transform_feedback.fuzz.2_level_array.float.geometry, for
example.

Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Reviewed-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4693>

18 months agogallium: add # of MRT to blend state
Rob Clark [Thu, 16 Apr 2020 17:53:03 +0000 (10:53 -0700)]
gallium: add # of MRT to blend state

To make it possible for drivers to avoid unnecessary blend state change
for unused MRTs.  Otherwise the driver would have to manage different
blend CSOs for different potential #s of render targets.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4619>

18 months agomesa/st: avoid u_vbuf for GLES
Rob Clark [Thu, 16 Apr 2020 17:30:16 +0000 (10:30 -0700)]
mesa/st: avoid u_vbuf for GLES

64b VBO types are not required for GLES.  So avoid u_vbuf if that was
otherwise the only reason it was used.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4619>

18 months agomesa: avoid redundant VBO updates
Rob Clark [Thu, 16 Apr 2020 16:46:04 +0000 (09:46 -0700)]
mesa: avoid redundant VBO updates

Avoids re-emitting unchanged VBO state, which is a big chunk of the
state updates in gfxbench driver2

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4619>

18 months agonir: Actually do load/store vectorization beyond vec2
Kenneth Graunke [Fri, 27 Mar 2020 09:05:56 +0000 (02:05 -0700)]
nir: Actually do load/store vectorization beyond vec2

nir_opt_load_store_vectorize has an is_strided_vector() function that
looks for types with weird explicit strides.  It does so by comparing
the explicit stride against the type-size-derived typical stride.

This had a subtle bug.  Simple vector types (vec2/3/4) have no explicit
stride, so glsl_get_explicit_stride() returns 0.  This never matches the
typical stride for a vector, so is_strided_vector() would return true
for basically any vector type, causing the vectorizer to bail.

I found this by looking at a compute shader with scalar SSBO loads at
offsets 0x220, 0x224, 0x228, 0x22c.  nir_opt_load_store_vectorize would
properly vectorize the first two into a vec2 load, but would refuse to
extend it to a vec3 and ultimately vec4 load because is_strided_vector()
saw a vec2 and freaked out.

Neither ACO nor ANV do load/store vectorization before lowering derefs,
so this shouldn't affect them.  However, I'd like to fix this bug to
avoid the trap for anyone who decides to in the future.  In a branch
where anv used this lowering, this cut an additional 38% of the send
messages in the shader by properly vectorizing more things.

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4255>

18 months agomesa: enable GL_EXT_draw_instanced for gles2
Simon Zeni [Tue, 24 Dec 2019 02:45:52 +0000 (21:45 -0500)]
mesa: enable GL_EXT_draw_instanced for gles2

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3204>

18 months agoturnip: Skip unused regs when setting up streamout buffers
Hyunjun Ko [Mon, 6 Apr 2020 05:16:21 +0000 (05:16 +0000)]
turnip: Skip unused regs when setting up streamout buffers

Fixes: 374406a7c420d266f920461f904864a94dc1b8c8
Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Reviewed-by: Brian Ho <brian@brkho.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4604>

18 months agoturnip : Fix wrong offset calculation for xfb buffer.
Hyunjun Ko [Mon, 6 Apr 2020 05:14:01 +0000 (05:14 +0000)]
turnip : Fix wrong offset calculation for xfb buffer.

In vulkan, offsets are already provided through the api
vkCmdBindTransformFeedbackBuffersEXT, so this is duplicated
calculation.

Fixes : 9ff1959ca5d24afe48bec20edf7e3d059d254134

Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Reviewed-by: Brian Ho <brian@brkho.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4604>

18 months agoturnip: Implement and enable VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT
Hyunjun Ko [Fri, 17 Apr 2020 07:08:17 +0000 (07:08 +0000)]
turnip: Implement and enable VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT

Tested by
dEQP-VK.transform_feedback.simple.query*

Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Reviewed-by: Brian Ho <brian@brkho.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4604>

18 months agoturnip: make the struct slot_value of queries get 2 values
Hyunjun Ko [Fri, 17 Apr 2020 06:39:14 +0000 (06:39 +0000)]
turnip: make the struct slot_value of queries get 2 values

In case of transform feedback query, it writes two integer values,
which one is for primitives written and another is for primitives
generated.

To handle this, the second member of the struct slot_value is worth
to be presented not as a padding.

In addition, we also need to modify get/copy_result to access both
values.

This patch is the prep work for the transform feedback query support.

Tested with
dEQP-VK.pipeline.timestamp.*
dEQP-VK.query_pool.occlusion_query.*

Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Reviewed-by: Brian Ho <brian@brkho.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4604>

18 months agointel/compiler: Don't create 64-bit src1 immediates in opt_peephole_sel
Kenneth Graunke [Wed, 22 Apr 2020 15:42:17 +0000 (08:42 -0700)]
intel/compiler: Don't create 64-bit src1 immediates in opt_peephole_sel

64-bit immediates are only allowed as src0.  Long ago, we decided to
avoid constructing such illegal situations in the IR, rather than
allowing them in the IR but then promoting bogus immediates to GRFs
later.  So, we need to fix opt_peephole_sel to not put 64-bit immediates
as src1 of the new SEL instruction.

Fixes: a4b36cd3dd3 ("intel/fs: Coalesce when the src live range is contained in the dst")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2816
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4692>

18 months agointel/compiler: Delete abs/neg handling in fsign code
Kenneth Graunke [Wed, 22 Apr 2020 06:50:46 +0000 (23:50 -0700)]
intel/compiler: Delete abs/neg handling in fsign code

This should have gone away when removing source modifiers.  They won't
be set any longer, so this is simply dead code.

Fixes: b7c47c4f7cf ("intel/compiler: Drop nir_lower_to_source_mods() and related handling.")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4691>

18 months agointel/compiler: Don't copy prop source mods into PICK_HIGH_32BIT
Kenneth Graunke [Wed, 22 Apr 2020 22:03:03 +0000 (15:03 -0700)]
intel/compiler: Don't copy prop source mods into PICK_HIGH_32BIT

VEC4_OPCODE_PICK_HIGH_32BIT performs 32-bit UD access on a 64-bit DF
value.  abs and negate make sense on DF, but break entirely when
trying to access pieces of the value as unsigned integer dwords.

Fixes an fsign Piglit test on Ivybridge:
tests/spec/arb_gpu_shader_fp64/execution/built-in-functions/vs-sign-neg-abs

It had regressed when I removed nir_lower_to_source_modifiers, as that
caused us to start generating different code which provoked this bug.

Fixes: b7c47c4f7cf ("intel/compiler: Drop nir_lower_to_source_mods() and related handling.")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2817
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4691>

18 months agodocs: update calendar, add news item, and link releases notes for 20.0.5
Dylan Baker [Wed, 22 Apr 2020 21:56:03 +0000 (14:56 -0700)]
docs: update calendar, add news item, and link releases notes for 20.0.5

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

18 months agodocs: Add sha256 sums for 20.0.5
Dylan Baker [Wed, 22 Apr 2020 21:55:34 +0000 (14:55 -0700)]
docs: Add sha256 sums for 20.0.5

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

18 months agodocs: Add relnotes for 20.0.5
Dylan Baker [Wed, 22 Apr 2020 21:34:51 +0000 (14:34 -0700)]
docs: Add relnotes for 20.0.5

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

18 months agov3d: support for textureQueryLOD
Alejandro Piñeiro [Thu, 16 Apr 2020 23:57:18 +0000 (01:57 +0200)]
v3d: support for textureQueryLOD

Fixes all the ARB_texture_query_lod piglit tests, and needed to get
the Vulkan CTS textureQueryLOD passing with the ongoing Vulkan driver.

Note that LOD Query bit flag became only available on V42 of the hw,
but the v3d40_tex is using V41 as reference. In order to avoid setting
up the infrastructure to support both v41 and v42, we manually set the
bit if the device version is the correct one.

We also fix how the ARB_texture_query_lod (so EXT_texture_query_lod)
is exposed. Before this commit it was always exposed (wrongly as it
was not really supported). Now it is exposed for devinfo.ver >= 42.

v2: move _need_sampler helper to nir.h (Eric Anholt)

Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4677>

18 months agonir: add nir_tex_instr_need_sampler helper
Alejandro Piñeiro [Wed, 22 Apr 2020 21:32:47 +0000 (23:32 +0200)]
nir: add nir_tex_instr_need_sampler helper

That is basically nir_tex_instr sampler_index documentation comment
expressed as a helper.

Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4677>

18 months agov3d/packet: fixing TMU_Config_Parameter_2 definition
Alejandro Piñeiro [Sat, 18 Apr 2020 22:12:03 +0000 (00:12 +0200)]
v3d/packet: fixing TMU_Config_Parameter_2 definition

v41 interchanged the size and start values for the Padding, and it
seems that v42 inherited it when adding the LOD Query bit.

Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4677>

18 months agov3d/tex: Configuration Parameter 1 can be only skipped if P2 can be skipped too
Alejandro Piñeiro [Mon, 20 Apr 2020 23:09:00 +0000 (01:09 +0200)]
v3d/tex: Configuration Parameter 1 can be only skipped if P2 can be skipped too

Configuration Parameter packets 1 and 2 are pointed as optional, but
it is not clearly stated if you can skip only P1 when P2 is needed.

In the practice, it seems that the situation P0 - non-P1 - P2 can
causes problems, and at least on the simulator, it seems that sampler
info are attempted to be accessed. So let's just be conservative, and
only skip P1 configuration if we can skip P2 configuration too.

Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4677>

18 months agov3d/tex: don't configure tmu config 1 if not needed
Alejandro Piñeiro [Mon, 13 Apr 2020 09:45:27 +0000 (11:45 +0200)]
v3d/tex: don't configure tmu config 1 if not needed

TMU configuration parameter 1 configures the sampler for the texture
operation. But there are some texture operations that doesn't need a
sampler. Skipping the configuration could provide a small perf
improvement on OpenGL. On the incoming Vulkan driver, would allow us
to avoid to set up an unneeded sampler.

Note that we still need to add the sampler configuration parameter if
the output is a 32bit, as it is on the sampler where we configure that
info.

Also, note that for images this is done comparing against a unpacked
p1 default. But in order to do that it is needed to go through the
code that fills up the unpacked p1. We can skip that too.

Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4677>

18 months agoturnip: implement VK_EXT_sampler_filter_minmax
Jonathan Marek [Mon, 20 Apr 2020 21:54:36 +0000 (17:54 -0400)]
turnip: implement VK_EXT_sampler_filter_minmax

Passes dEQP-VK.pipeline.sampler.view_type.*

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4662>

18 months agoturnip: enable cube arrays
Jonathan Marek [Mon, 20 Apr 2020 21:57:22 +0000 (17:57 -0400)]
turnip: enable cube arrays

Passes dEQP-VK.pipeline.sampler.view_type.cube_array.*

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4663>

18 months agoturnip: implement VK_EXT_filter_cubic
Jonathan Marek [Wed, 22 Apr 2020 02:01:03 +0000 (22:01 -0400)]
turnip: implement VK_EXT_filter_cubic

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4672>

18 months agoturnip: implement VK_EXT_sample_locations
Jonathan Marek [Tue, 21 Apr 2020 16:14:23 +0000 (12:14 -0400)]
turnip: implement VK_EXT_sample_locations

Passes tests in:

dEQP-VK.pipeline.multisample.sample_locations_ext.*

Note that these tests fail because of gl_PrimitiveID not working correctly:

dEQP-VK.pipeline.multisample.sample_locations_ext.verify_location.*

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4665>

18 months agoturnip: set shader key msaa field
Jonathan Marek [Tue, 21 Apr 2020 16:19:56 +0000 (12:19 -0400)]
turnip: set shader key msaa field

Fixes per-sample interpolation.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4665>

18 months agoaco: coalesce v_mad's accumulator with definition's affinities
Daniel Schürmann [Fri, 17 Apr 2020 16:07:52 +0000 (17:07 +0100)]
aco: coalesce v_mad's accumulator with definition's affinities

Totals from affected shaders:
Code Size: 8922676 -> 8915192 (-0.08 %) bytes

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>

18 months agoaco: use upper part of gap in register file if it is beneficial for striding
Daniel Schürmann [Wed, 15 Apr 2020 10:24:39 +0000 (11:24 +0100)]
aco: use upper part of gap in register file if it is beneficial for striding

Totals from affected shaders:
SGPRS: 1717288 -> 1716984 (-0.02 %)
VGPRS: 1305924 -> 1304904 (-0.08 %)
Code Size: 138508892 -> 138420144 (-0.06 %) bytes
Max Waves: 115726 -> 115735 (0.01 %)

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>

18 months agoaco: try to always find a register with stride for even sizes
Daniel Schürmann [Wed, 15 Apr 2020 10:00:45 +0000 (11:00 +0100)]
aco: try to always find a register with stride for even sizes

Totals from affected shaders:
SGPRS: 1162400 -> 1162400 (0.00 %)
VGPRS: 947364 -> 946960 (-0.04 %)
Code Size: 98399300 -> 98399004 (-0.00 %) bytes
Max Waves: 74665 -> 74682 (0.02 %)

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>

18 months agoaco: stop get_reg_simple after reaching max_used_gpr
Daniel Schürmann [Tue, 14 Apr 2020 11:15:56 +0000 (12:15 +0100)]
aco: stop get_reg_simple after reaching max_used_gpr

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>

18 months agoaco: refactor get_reg_simple() to return early on exact matches
Daniel Schürmann [Tue, 14 Apr 2020 10:43:39 +0000 (11:43 +0100)]
aco: refactor get_reg_simple() to return early on exact matches

in the best fit algorithm

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>

18 months agoaco: don't create vector affinities for operands which are not killed or are duplicates
Daniel Schürmann [Wed, 15 Apr 2020 11:05:55 +0000 (12:05 +0100)]
aco: don't create vector affinities for operands which are not killed or are duplicates

Totals from affected shaders:
SGPRS: 825184 -> 825184 (0.00 %)
VGPRS: 697640 -> 697240 (-0.06 %)
Code Size: 79244104 -> 79201072 (-0.05 %) bytes
Max Waves: 42388 -> 42386 (-0.00 %)

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>

18 months agoaco: allocate full register for subdword definitions if HW doesn't support it
Daniel Schürmann [Mon, 13 Apr 2020 16:23:38 +0000 (17:23 +0100)]
aco: allocate full register for subdword definitions if HW doesn't support it

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>

18 months agoaco: move attempt to find strided register into get_reg_simple()
Daniel Schürmann [Mon, 13 Apr 2020 12:16:00 +0000 (13:16 +0100)]
aco: move attempt to find strided register into get_reg_simple()

This simplifies code and helps some shaders

Totals from affected shaders:
Code Size: 51227172 -> 51202216 (-0.05 %) bytes
Max Waves: 19955 -> 19948 (-0.04 %)

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>

18 months agoaco: use DefInfo in more places to simplify RA
Daniel Schürmann [Mon, 13 Apr 2020 14:18:47 +0000 (15:18 +0100)]
aco: use DefInfo in more places to simplify RA

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>

18 months agoaco: create and use DefInfo struct in RA
Daniel Schürmann [Mon, 13 Apr 2020 12:08:08 +0000 (13:08 +0100)]
aco: create and use DefInfo struct in RA

for maintaining all information necessary to find a register.

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>

18 months agoaco: create pseudo dummy instruction in RA to be used for live-range splits
Daniel Schürmann [Mon, 13 Apr 2020 12:11:30 +0000 (13:11 +0100)]
aco: create pseudo dummy instruction in RA to be used for live-range splits

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>

18 months agoaco: refactor get_reg() to also handle affinities
Daniel Schürmann [Fri, 10 Apr 2020 18:58:45 +0000 (19:58 +0100)]
aco: refactor get_reg() to also handle affinities

This simplifies definition handling and
helps a few shaders

Totals from affected shaders:
Code Size: 659540 -> 659376 (-0.02 %) bytes

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>

18 months agoaco: refactor get_reg() to take Temp instead of RegClass
Daniel Schürmann [Fri, 10 Apr 2020 17:55:18 +0000 (18:55 +0100)]
aco: refactor get_reg() to take Temp instead of RegClass

This patch also moves get_reg_specified() and
get_reg_vec() before get_reg() to make use of it later.

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>

18 months agoaco: simplify operand handling in RA
Daniel Schürmann [Fri, 10 Apr 2020 15:31:45 +0000 (16:31 +0100)]
aco: simplify operand handling in RA

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>

18 months agoturnip: enable VK_FORMAT_S8_UINT as stencil format
Jonathan Marek [Thu, 9 Apr 2020 23:17:54 +0000 (19:17 -0400)]
turnip: enable VK_FORMAT_S8_UINT as stencil format

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4588>

18 months agoturnip: improve GMEM load/store logic
Jonathan Marek [Thu, 9 Apr 2020 23:32:19 +0000 (19:32 -0400)]
turnip: improve GMEM load/store logic

Determine load/store at renderpass creation time.

This also fixes behavior with S8_UINT.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4588>

18 months agoturnip: disable depth test for S8_UINT attachment
Jonathan Marek [Thu, 9 Apr 2020 23:13:44 +0000 (19:13 -0400)]
turnip: disable depth test for S8_UINT attachment

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4588>

18 months agoaco: implement 64-bit sgpr swaps
Rhys Perry [Fri, 17 Apr 2020 13:33:34 +0000 (14:33 +0100)]
aco: implement 64-bit sgpr swaps

In our pipeline-db, helps almost exclusively Detroit: Become Human.

Totals from 6726 (5.36% of 125503) affected shaders:
CodeSize: 74680952 -> 74102228 (-0.77%)
Instrs: 14551507 -> 14406001 (-1.00%)
Cycles: 1748272436 -> 1690173104 (-3.32%)
VMEM: 964671 -> 964058 (-0.06%)
Copies: 1993312 -> 1847806 (-7.30%)

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/4469>

18 months agoaco: implement sub-dword swaps
Rhys Perry [Mon, 6 Apr 2020 16:13:52 +0000 (17:13 +0100)]
aco: implement sub-dword swaps

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/4469>

18 months agoaco: add VOP3P_instruction
Rhys Perry [Fri, 10 Apr 2020 16:28:33 +0000 (17:28 +0100)]
aco: add VOP3P_instruction

The optimizer isn't yet updated to handle this, since lower_to_hw_instr
will be the only user for now.

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/4469>

18 months agoaco: fix copy statistic for 64-bit vgpr constant copy
Rhys Perry [Thu, 9 Apr 2020 16:00:25 +0000 (17:00 +0100)]
aco: fix copy statistic for 64-bit vgpr constant copy

The statistic is in units of instructions.

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/4469>

18 months agoir3: Fix bug with shaders that only exit via discard
Connor Abbott [Tue, 21 Apr 2020 09:36:40 +0000 (11:36 +0200)]
ir3: Fix bug with shaders that only exit via discard

discard is supposed to be a terminator, killing the thread, so that it's
possible to exit main solely by a discard e.g. inside of an infinite
loop. However, it currently isn't treated as a terminator in NIR due to
workarounds turning it into demote (d3d-style kill) and even if that
were fixed, we probably wouldn't want to treat discard_if as a jump
since otherwise the scheduler wouldn't be able to schedule things around
it. So, add this workaround which inserts jump instructions as
necessary to guarantee that the program always terminates.

This fixes a hang in dEQP-VK.graphicsfuzz.while-inside-switch, which
conditionally does a discard inside an infinite loop.

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

18 months agoir3: Don't double-insert the first block
Connor Abbott [Tue, 21 Apr 2020 09:27:46 +0000 (11:27 +0200)]
ir3: Don't double-insert the first block

The first block was being added to the list twice, once here and once in
emit_block(), leading to list corruption and infinite loops when trying
to traverse the list of blocks backwards.

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

18 months agospirv: Expand workaround for OpControlBarrier on old GLSLang
Danylo Piliaiev [Tue, 21 Apr 2020 15:20:39 +0000 (18:20 +0300)]
spirv: Expand workaround for OpControlBarrier on old GLSLang

In SPIRV of compute shader in Aztec Ruins benchmark there is:

OpControlBarrier %uint_1 %uint_1 %uint_0
// ControlBarrier(Device, Device, rdcspv::MemorySemantics(0));

which is an incorrect translation of glsl barrier().

GLSLang, prior to c3f1cdfa, emitted the OpControlBarrier with
Device instead of Workgroup for execution scope.

2365520c covers similar case but isn't applied when execution_scope
is SpvScopeDevice.

Cc: <mesa-stable@lists.freedesktop.org>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2742
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4660>

18 months agoiris: fail screen creation when kernel support is not there
Lionel Landwerlin [Mon, 20 Apr 2020 14:09:42 +0000 (17:09 +0300)]
iris: fail screen creation when kernel support is not there

v2: Bump check to I915_PARAM_HAS_CONTEXT_ISOLATION (v4.16) (Ken)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: <mesa-stable@lists.freedesktop.org>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2803
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4643>

18 months agogitlab-ci: add a list of excluded tests for RADV
Samuel Pitoiset [Fri, 17 Apr 2020 16:20:51 +0000 (18:20 +0200)]
gitlab-ci: add a list of excluded tests for RADV

Exclude WSI related tests in CI.

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/4656>

18 months agometa,i965: Rip GL_EXT_texture_multisample_blit_scaled support out of meta
Jason Ekstrand [Fri, 17 Apr 2020 19:18:35 +0000 (14:18 -0500)]
meta,i965: Rip GL_EXT_texture_multisample_blit_scaled support out of meta

i965 is the only driver that ever linked to this code and it's been
doing it in BLORP for a long time now.  The only possible case where it
would have fallen back to meta was for depth/stencil but that should
have ended starting with 6cec618e82aa2.  Rip out the dead code.

Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4622>

18 months agopanfrost: Assert on unimplemented fragcoord etc
Alyssa Rosenzweig [Tue, 21 Apr 2020 22:22:26 +0000 (18:22 -0400)]
panfrost: Assert on unimplemented fragcoord etc

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

18 months agopanfrost: Fix crashes with small BOs
Alyssa Rosenzweig [Tue, 21 Apr 2020 22:23:00 +0000 (18:23 -0400)]
panfrost: Fix crashes with small BOs

Affects Bifrost.

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

18 months agopan/bi: Assert out multiple textures
Alyssa Rosenzweig [Tue, 21 Apr 2020 23:35:01 +0000 (19:35 -0400)]
pan/bi: Assert out multiple textures

Only for a moment.

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

18 months agopan/bi: Pack TEX compact instructions
Alyssa Rosenzweig [Tue, 21 Apr 2020 20:08:19 +0000 (16:08 -0400)]
pan/bi: Pack TEX compact instructions

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

18 months agopan/bi: Generate TEX_COMPACT instruction
Alyssa Rosenzweig [Tue, 21 Apr 2020 17:00:44 +0000 (13:00 -0400)]
pan/bi: Generate TEX_COMPACT instruction

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

18 months agopan/bi: Stub out tex_compact logic
Alyssa Rosenzweig [Tue, 21 Apr 2020 16:15:29 +0000 (12:15 -0400)]
pan/bi: Stub out tex_compact logic

We may generate either texture type.

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

18 months agopan/bi: Add normal/compact/dual switch to IR
Alyssa Rosenzweig [Tue, 21 Apr 2020 16:26:42 +0000 (12:26 -0400)]
pan/bi: Add normal/compact/dual switch to IR

For tex.

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

18 months agopan/bi: Feed data register to BI_TEX
Alyssa Rosenzweig [Tue, 21 Apr 2020 20:08:30 +0000 (16:08 -0400)]
pan/bi: Feed data register to BI_TEX

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

18 months agopan/bi: Include TEX_COMPACT f16 opcode
Alyssa Rosenzweig [Tue, 21 Apr 2020 16:49:16 +0000 (12:49 -0400)]
pan/bi: Include TEX_COMPACT f16 opcode

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

18 months agopan/bi: Structify TEX compact
Alyssa Rosenzweig [Tue, 21 Apr 2020 20:08:41 +0000 (16:08 -0400)]
pan/bi: Structify TEX compact

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

18 months agopan/bi: Disassemble f16 dual tex
Alyssa Rosenzweig [Tue, 21 Apr 2020 16:48:01 +0000 (12:48 -0400)]
pan/bi: Disassemble f16 dual tex

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

18 months agopan/bi: Document when dual-tex is triggered
Alyssa Rosenzweig [Tue, 21 Apr 2020 16:19:09 +0000 (12:19 -0400)]
pan/bi: Document when dual-tex is triggered

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

18 months agopan/bi: Print tex_compact coordinates
Alyssa Rosenzweig [Tue, 21 Apr 2020 16:14:51 +0000 (12:14 -0400)]
pan/bi: Print tex_compact coordinates

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

18 months agointel/compiler: Put back saturate on [iu]add_sat opcodes
Kenneth Graunke [Tue, 21 Apr 2020 23:06:54 +0000 (16:06 -0700)]
intel/compiler: Put back saturate on [iu]add_sat opcodes

I deleted one too many inst->saturate = ... lines.  This one must stay.

Fixes: b7c47c4f7cf ("intel/compiler: Drop nir_lower_to_source_mods() and related handling.")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4669>

18 months agopanfrost: Align Android makefiles with recent changes
Roman Stratiienko [Sun, 19 Apr 2020 16:15:58 +0000 (19:15 +0300)]
panfrost: Align Android makefiles with recent changes

Signed-off-by: Roman Stratiienko <roman.stratiienko@nure.ua>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4634>

18 months agofreedreno/ir3: Drop handling FRAG_RESULT_DEPTH writing to .z
Eric Anholt [Tue, 21 Apr 2020 23:02:29 +0000 (16:02 -0700)]
freedreno/ir3: Drop handling FRAG_RESULT_DEPTH writing to .z

Since we consume NIR, we get FRAG_RESULT_DEPTH in .x.  Something must have
been working out for this code to not be trying to get an undefined value,
but go ahead and drop it now.

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

18 months agoturnip: fix GMEM resolve in CmdNextSubpass
Jonathan Marek [Tue, 21 Apr 2020 17:37:23 +0000 (13:37 -0400)]
turnip: fix GMEM resolve in CmdNextSubpass

The BLIT scissor must be set correctly for tu_store_gmem_attachment.

Fixes this deqp test:

dEQP-VK.pipeline.multisample_shader_builtin.sample_id.137_191_1.samples

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4666>

18 months agogitlab-ci: adapt query_traces_yaml to gitlab specific changes
Andres Gomez [Mon, 20 Apr 2020 10:40:05 +0000 (13:40 +0300)]
gitlab-ci: adapt query_traces_yaml to gitlab specific changes

This change was missing after acf7e73be54 "(gitlab-ci: make explicit
tracie is gitlab specific)".

Fixes: acf7e73be54 "(gitlab-ci: make explicit tracie is gitlab specific)".
Signed-off-by: Andres Gomez <agomez@igalia.com>
Reviewed-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Reviewed-by: Rohan Garg <rohan.garg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4638>

18 months agoegl: simplify client/platform extension handling
Emil Velikov [Wed, 8 Apr 2020 10:46:47 +0000 (11:46 +0100)]
egl: simplify client/platform extension handling

For GLVND reasons the client/platform extensions strings should be
split. While in the non GLVND case they're one big string.

Currently we handle this distinction at run-time for not obvious reason.
Adding additional code and complexity.

Swap those with a few well placed #if USE_LIBGLVND guards.

As a side result this removes a minor memory leak due to the
concatenation in the non GLVND case.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4491>

18 months agomesa/gallium: do not use enum for bit-allocated member
Erik Faye-Lund [Fri, 13 Mar 2020 12:56:44 +0000 (13:56 +0100)]
mesa/gallium: do not use enum for bit-allocated member

The signedness of enums are undefined, so on platforms with signed
enums, this isn't going to work. One such platform is Microsoft Windows.

So let's just use an unsigned here instead.

Fixes: b1c4c4c7f53 ("mesa/gallium: automatically lower alpha-testing")
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4648>

18 months agoutil/ralloc: fix ralloc alignment on Win64
Jesse Natalie [Mon, 27 Jan 2020 17:41:42 +0000 (09:41 -0800)]
util/ralloc: fix ralloc alignment on Win64

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

18 months agointel/compiler: Drop nir_lower_to_source_mods() and related handling.
Kenneth Graunke [Sat, 18 Apr 2020 08:20:42 +0000 (01:20 -0700)]
intel/compiler: Drop nir_lower_to_source_mods() and related handling.

I think we're unanimous in wanting to drop nir_lower_to_source_mods.
It's a bit of complexity to handle in the backend, but perhaps more
importantly, would be even more complexity to handle in nir_search.

And, it turns out that since we made other compiler improvements in the
last few years, they no longer appear to buy us anything of value.
Summarizing the results from shader-db from this patch:

 - Icelake (scalar mode)

   Instruction counts:

   - 411 helped, 598 hurt (out of 139,470 shaders)
   - 99.2% of shaders remain unaffected.  The average increase in
     instruction count in hurt programs is 1.78 instructions.
   - total instructions in shared programs: 17214951 -> 17215206 (<.01%)
   - instructions in affected programs: 1143879 -> 1144134 (0.02%)

   Cycles:

   - 1042 helped, 1357 hurt
   - total cycles in shared programs: 365613294 -> 365882263 (0.07%)
   - cycles in affected programs: 138155497 -> 138424466 (0.19%)

 - Haswell (both scalar and vector modes)

   Instruction counts:

   - 73 helped, 1680 hurt (out of 139,470 shaders)
   - 98.7% of shaders remain unaffected.  The average increase in
     instruction count in hurt programs is 1.9 instructions.
   - total instructions in shared programs: 14199527 -> 14202262 (0.02%)
   - instructions in affected programs: 446499 -> 449234 (0.61%)

   Cycles:

   - 5253 helped, 5559 hurt
   - total cycles in shared programs: 359996545 -> 360038731 (0.01%)
   - cycles in affected programs: 155897127 -> 155939313 (0.03%)

Given that ~99% of shader-db remains unaffected, and the affected
programs are hurt by about 1-2 instructions - which are all cheap
ALU instructions - this is unlikely to be measurable in terms of
any real performance impact that would affect users.

So, drop them and simplify the backend, and hopefully enable other
future simplifications in NIR.

Reviewed-by: Eric Anholt <eric@anholt.net> [v1]
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4616>

18 months agomeson: update llvm dependency logic for meson 0.54.0
Dylan Baker [Tue, 14 Apr 2020 17:06:35 +0000 (10:06 -0700)]
meson: update llvm dependency logic for meson 0.54.0

In meson 0.54.0 I fixed the llvm cmake dependency to return "not found"
if shared linking is requested. This means that for 0.54.0 and later we
don't need to do anything, and for earlier versions we only need to
change the logic to force the config-tool method if shared linking is
required.

Fixes: 821cf6942a390f5f64d8a2cff9933b24c84f7dc1
       ("meson: Use cmake to find LLVM when building for window")

Acked-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4556>