platform/upstream/mesa.git
3 years agonir/copy_prop_vars: avoid a duplicate lookup if src == vec_src
Rhys Perry [Tue, 10 Nov 2020 10:26:14 +0000 (10:26 +0000)]
nir/copy_prop_vars: avoid a duplicate lookup if src == vec_src

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

3 years agonir/copy_prop_vars: use nir_deref_and_path
Rhys Perry [Tue, 10 Nov 2020 10:14:26 +0000 (10:14 +0000)]
nir/copy_prop_vars: use nir_deref_and_path

Instead of recreating paths, create them once when needed using
nir_deref_and_path.

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

3 years agonir/deref: add helpers to lazily create paths
Rhys Perry [Tue, 10 Nov 2020 10:13:04 +0000 (10:13 +0000)]
nir/deref: add helpers to lazily create paths

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

3 years agonir/search: check for changes before adding uses to worklist
Rhys Perry [Wed, 4 Nov 2020 13:12:47 +0000 (13:12 +0000)]
nir/search: check for changes before adding uses to worklist

So it doesn't uselessly add instructions to the worklist.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7511>

3 years agonir/search: check instr type before adding to worklist
Rhys Perry [Wed, 4 Nov 2020 13:10:25 +0000 (13:10 +0000)]
nir/search: check instr type before adding to worklist

nir_algebraic_instr() ignores non-ALU instructions, so there's no point.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7511>

3 years agonir/loop_analyze: initialize loop variables on demand
Rhys Perry [Thu, 5 Nov 2020 15:03:15 +0000 (15:03 +0000)]
nir/loop_analyze: initialize loop variables on demand

Zero'ing the allocation and calling initialize_ssa_def() for every
ssa def can be expensive. Since we only use a subset of the allocated
variables, initialize it only when needed.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7511>

3 years agonir/copy_prop_vars,nir/dead_write_vars: ignore read-only loads
Rhys Perry [Thu, 5 Nov 2020 17:00:56 +0000 (17:00 +0000)]
nir/copy_prop_vars,nir/dead_write_vars: ignore read-only loads

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7511>

3 years agonir: add nir_var_vec_indexable_modes
Rhys Perry [Mon, 9 Nov 2020 14:41:38 +0000 (14:41 +0000)]
nir: add nir_var_vec_indexable_modes

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7511>

3 years agonir: add nir_phi_get_src_from_block() helper
Daniel Schürmann [Wed, 11 Nov 2020 15:34:06 +0000 (16:34 +0100)]
nir: add nir_phi_get_src_from_block() helper

Returns the phi_src corresponding to a given nir_block.

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

3 years agonir: allow for cheap intrinsics in nir_opt_peephole_select()
Daniel Schürmann [Tue, 19 Nov 2019 16:24:34 +0000 (17:24 +0100)]
nir: allow for cheap intrinsics in nir_opt_peephole_select()

Also added nir_instr_type_ssa_undef for convenience.
Out of the added intrinsics, it seems that only load_helper_invocation
has an effect on tested games.

Totals from 446 (0.32% of 138013) affected shaders (RAVEN):
SGPRs: 17600 -> 17688 (+0.50%); split: -0.09%, +0.59%
VGPRs: 14140 -> 14312 (+1.22%); split: -0.03%, +1.24%
CodeSize: 1157696 -> 1131208 (-2.29%)
MaxWaves: 3430 -> 3427 (-0.09%)
Instrs: 220402 -> 214200 (-2.81%)
Cycles: 900776 -> 875752 (-2.78%)
VMEM: 160894 -> 180439 (+12.15%); split: +12.19%, -0.04%
SMEM: 19854 -> 20169 (+1.59%); split: +1.74%, -0.16%
VClause: 3597 -> 3604 (+0.19%)
SClause: 7258 -> 7248 (-0.14%); split: -0.15%, +0.01%
Copies: 17060 -> 16336 (-4.24%); split: -4.44%, +0.20%
Branches: 3995 -> 2518 (-36.97%)
PreSGPRs: 11972 -> 12148 (+1.47%); split: -0.13%, +1.60%

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

3 years agoradv/winsys: Fix use of nonexisting struct type in sizeof
Tony Wasserka [Tue, 3 Nov 2020 16:22:25 +0000 (17:22 +0100)]
radv/winsys: Fix use of nonexisting struct type in sizeof

Since only the pointer size is queried here, this is functionally
equivalent.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7430>

3 years agoradv/query: Avoid hardcoding array size constants
Tony Wasserka [Tue, 3 Nov 2020 16:22:06 +0000 (17:22 +0100)]
radv/query: Avoid hardcoding array size constants

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7430>

3 years agoradv,aco: Compile with -Wshadow when available
Tony Wasserka [Tue, 3 Nov 2020 16:35:15 +0000 (17:35 +0100)]
radv,aco: Compile with -Wshadow when available

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7430>

3 years agoradv: Fix -Wshadow warnings
Tony Wasserka [Tue, 3 Nov 2020 16:20:36 +0000 (17:20 +0100)]
radv: Fix -Wshadow warnings

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7430>

3 years agoaco/tests: Fix -Wunused warnings in release mode
Tony Wasserka [Mon, 16 Nov 2020 10:08:50 +0000 (11:08 +0100)]
aco/tests: Fix -Wunused warnings in release mode

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7430>

3 years agoaco/tests: Fix -Wshadow warnings
Tony Wasserka [Fri, 6 Nov 2020 11:41:35 +0000 (12:41 +0100)]
aco/tests: Fix -Wshadow warnings

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

3 years agoaco: Fix -Wshadow warnings
Tony Wasserka [Tue, 3 Nov 2020 13:40:05 +0000 (14:40 +0100)]
aco: Fix -Wshadow warnings

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

3 years agoradv: ignore other blend targets if dual-source blending is enabled
Samuel Pitoiset [Thu, 19 Nov 2020 11:00:23 +0000 (12:00 +0100)]
radv: ignore other blend targets if dual-source blending is enabled

Using more blend targets than specified by maxFragmentDualSrcAttachments
is invalid per the Vulkan spec.

I'm usually not a fan to workaround game bugs inside the driver but
it's really easy for us to ignore MRT1+ in the driver and that
prevents wrong behaviour.

Cc: 20.2, 20.3
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/7684>

3 years agodocs: add basic docs for d3d12 driver
Erik Faye-Lund [Thu, 19 Nov 2020 11:54:19 +0000 (12:54 +0100)]
docs: add basic docs for d3d12 driver

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7687>

3 years agoci: add list of expected failures for Sienna Cichlid
Samuel Pitoiset [Thu, 19 Nov 2020 11:23:31 +0000 (12:23 +0100)]
ci: add list of expected failures for Sienna Cichlid

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

3 years agov3dv: only write new uniforms when needed
Iago Toral Quiroga [Thu, 19 Nov 2020 08:45:16 +0000 (09:45 +0100)]
v3dv: only write new uniforms when needed

Writing uniform streams is performance sensitive so we should try our
best to avoid writing new uniforms if they have not changed. Particularly,
if only the vertex buffers have changed, we should not write new uniforms.

This improves performance in vkQuake2 by about 11.15%.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7683>

3 years agov3dv: remove redundant free of default pipeline attributes BO
Iago Toral Quiroga [Thu, 19 Nov 2020 09:45:49 +0000 (10:45 +0100)]
v3dv: remove redundant free of default pipeline attributes BO

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7683>

3 years agor600/sb: Initialize sb_context members in constructor.
Vinson Lee [Tue, 3 Nov 2020 01:59:46 +0000 (17:59 -0800)]
r600/sb: Initialize sb_context members in constructor.

Fix defects reported by Coverity Scan.

Uninitialized scalar field (UNINIT_CTOR)
uninit_member: Non-static class member alu_temp_gprs is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member max_fetch is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member has_trans is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member vtx_src_num is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member num_slots is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member uses_mova_gpr is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member r6xx_gpr_index_workaround is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member stack_workaround_8xx is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member stack_workaround_9xx is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member wavefront_size is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member stack_entry_size is not initialized in this constructor nor in any functions that it calls.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7413>

3 years agor600/sfn: Initialize ShaderFromNir members in constructor.
Vinson Lee [Tue, 17 Nov 2020 00:55:56 +0000 (16:55 -0800)]
r600/sfn: Initialize ShaderFromNir members in constructor.

Fix defect reported by Coverity Scan.

Uninitialized scalar field (UNINIT_CTOR)
uninit_member: Non-static class member chip_class is not initialized in
this constructor nor in any functions that it calls.
uninit_member: Non-static class member scratch_size is not initialized
in this constructor nor in any functions that it calls.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7648>

3 years agor600/sfn: Fix typos.
Vinson Lee [Tue, 17 Nov 2020 01:06:43 +0000 (17:06 -0800)]
r600/sfn: Fix typos.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7649>

3 years agointel/fs: Add support for printing half-float immediate values
Ian Romanick [Wed, 29 Jul 2020 23:38:40 +0000 (16:38 -0700)]
intel/fs: Add support for printing half-float immediate values

v2: Remove offensive, extraneous 0 in hex constant.

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7650>

3 years agointel/fs: Silence unused parameter warning in filter_simd
Ian Romanick [Thu, 30 Jul 2020 00:50:03 +0000 (17:50 -0700)]
intel/fs: Silence unused parameter warning in filter_simd

src/intel/compiler/brw_fs.cpp: In function ‘bool filter_simd(const nir_instr*, const void*)’:
src/intel/compiler/brw_fs.cpp:8870:50: warning: unused parameter ‘_options’ [-Wunused-parameter]
 8870 | filter_simd(const nir_instr *instr, const void * _options)
      |                                     ~~~~~~~~~~~~~^~~~~~~~

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7650>

3 years agointel/compiler: Delete redundant MAC declaration
Ian Romanick [Wed, 29 Jul 2020 18:29:56 +0000 (11:29 -0700)]
intel/compiler: Delete redundant MAC declaration

It already appears about 20 lines earlier near MACH.

Trivial.

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7650>

3 years agointel/compiler: Rotate instructions ROR and ROL cannot have source modifiers
Ian Romanick [Thu, 30 Jul 2020 18:33:03 +0000 (11:33 -0700)]
intel/compiler: Rotate instructions ROR and ROL cannot have source modifiers

I checked the Bspec for both Gen11 and Gen12, and it appears that rotate
instructions cannot have source modifiers or saturate modifer.  Saturate
was already handled.

Fixes: 1e92e83856b ("intel/compiler: Emit ROR and ROL instruction")
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7650>

3 years agodocs: Update Mesa GL enum allocations for EGL_MESA_platform_xcb
Adam Jackson [Thu, 19 Nov 2020 17:52:55 +0000 (12:52 -0500)]
docs: Update Mesa GL enum allocations for EGL_MESA_platform_xcb

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

3 years agoradv/winsys: add missing Van Gogh and Dimgrey Cavefish in the null winsys
Samuel Pitoiset [Thu, 19 Nov 2020 11:18:36 +0000 (12:18 +0100)]
radv/winsys: add missing Van Gogh and Dimgrey Cavefish in the null winsys

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

3 years agoradv/winsys: fill real PCIID for Sienna Cichlid and Navy Flounder
Samuel Pitoiset [Thu, 19 Nov 2020 11:16:54 +0000 (12:16 +0100)]
radv/winsys: fill real PCIID for Sienna Cichlid and Navy Flounder

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

3 years agoir3: Enable nir_lower_vars_to_scratch on a6xx
Connor Abbott [Fri, 30 Oct 2020 15:38:40 +0000 (16:38 +0100)]
ir3: Enable nir_lower_vars_to_scratch on a6xx

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

3 years agofreedreno/a6xx: Implement private memory
Connor Abbott [Fri, 30 Oct 2020 15:31:05 +0000 (16:31 +0100)]
freedreno/a6xx: Implement private memory

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

3 years agotu: Support private memory
Connor Abbott [Thu, 29 Oct 2020 14:13:00 +0000 (15:13 +0100)]
tu: Support private memory

Allocate enough space and then program the registers correctly. We
currently allocate scratch memory as part of the pipeline, because the
alternative of trying to share it across pipelines is a bit trickier due
to the need for the configs to exactly match whenever we reuse the same
buffer for different shaders.

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

3 years agofreedreno: Add per-device parameters for private memory
Connor Abbott [Thu, 29 Oct 2020 14:08:36 +0000 (15:08 +0100)]
freedreno: Add per-device parameters for private memory

We have to allocate backing storage big enough to hold all the private
memory for all threads that can possibly be in flight, which means that
we have to start filling in some more model-specific information as the
sizes will be different for models with different core counts/ALU
counts.

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

3 years agoir3: Properly validate cat6 half-ness
Connor Abbott [Fri, 30 Oct 2020 16:58:09 +0000 (17:58 +0100)]
ir3: Properly validate cat6 half-ness

Apparently this is all that's required to get loads & stores to work
with half registers.

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

3 years agoir3: Initial support for private memory
Connor Abbott [Thu, 29 Oct 2020 14:05:24 +0000 (15:05 +0100)]
ir3: Initial support for private memory

Add information that the driver will need to setup registers, and
implement support for load_scratch/store_scratch using private memory.

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

3 years agoir3/parser: Fix st{l,lw,g,p} and ld{l,lw,g,p} assembly
Connor Abbott [Tue, 27 Oct 2020 12:44:41 +0000 (13:44 +0100)]
ir3/parser: Fix st{l,lw,g,p} and ld{l,lw,g,p} assembly

It seems the src_offset and dst_offset are unused for these, and the
offset is expected to be an immediate register. Also we forgot to add a
dummy dst for the store instructions.

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

3 years agoir3: Fix STP/LDP assembly
Connor Abbott [Tue, 27 Oct 2020 12:43:56 +0000 (13:43 +0100)]
ir3: Fix STP/LDP assembly

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

3 years agoir3: Support assembling & disassembling getspid/getwid
Connor Abbott [Fri, 23 Oct 2020 12:07:04 +0000 (14:07 +0200)]
ir3: Support assembling & disassembling getspid/getwid

These aren't useful yet in the driver, but were useful for
reverse-engineering how private memory works.

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

3 years agoir3: Add more a6xx-specific cat6 opcodes
Connor Abbott [Fri, 23 Oct 2020 11:51:47 +0000 (13:51 +0200)]
ir3: Add more a6xx-specific cat6 opcodes

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

3 years agoir3: Expand cat6 a6xx opcode field
Connor Abbott [Fri, 23 Oct 2020 11:46:47 +0000 (13:46 +0200)]
ir3: Expand cat6 a6xx opcode field

Turns out the low bit of pad3 is actually the high bit of the opcode.

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

3 years agofreedreno/a6xx: Document private memory registers
Connor Abbott [Tue, 27 Oct 2020 15:12:27 +0000 (16:12 +0100)]
freedreno/a6xx: Document private memory registers

They seem to be broadly similar to the a3xx ones, albeit with some
things shuffled around and with different units, and the extra layout
mode bits.

We also document the FIRST_EXEC_OFFSET registers, so that we can start
properly setting them all to 0 in freedreno and turnip in later commits.
I discovered the compute one when playing with function support in the
blob CL driver, and added the other registers via analogy (the blob
Vulkan driver sets FIRST_EXEC_OFFSET and the shader VA together in one
packet for all stages, so it seems to really be in the same place for
all stages).

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

3 years agofreedreno/ci: Strip location from asserts
Connor Abbott [Tue, 27 Oct 2020 15:58:29 +0000 (16:58 +0100)]
freedreno/ci: Strip location from asserts

Let's not force everyone touching ir3.h to make random changes to the
reference output.

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

3 years agoglcpp: Handle bison-3.6 error message changes
Matt Turner [Tue, 17 Nov 2020 19:58:24 +0000 (14:58 -0500)]
glcpp: Handle bison-3.6 error message changes

In bison's commit 72c9fa4510eb (skeletons: use "end of file" instead of
"$end") in bison-3.6, '$end' was changed to 'end of file' in error
messages. Since our glcpp test cases contain the expected output text,
they rely on the particular messages printed by bison. The test case
084-unbalanced-parentheses fails when Mesa is built with bison-3.6 due
to this change.

To allow the test to pass on all supported versions of bison, we:

   1. Change '$end' -> 'end of file' in the .expected file, and
   2. Normalize the error generated by the test case with the same
      replacement

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3181
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7659>

3 years agoamdgpu_bo: make cache_entry a extensible array
Pierre-Eric Pelloux-Prayer [Tue, 10 Nov 2020 12:47:35 +0000 (13:47 +0100)]
amdgpu_bo: make cache_entry a extensible array

Improves performance in SPECviewperf13 snx.
e.g.: test10 fps evolution: 270 -> 280.

"pahole radeonsi_dri.so -C amdgpu_winsys_bo" after:

struct amdgpu_winsys_bo {
struct pb_buffer           base;                 /*     0    32 */
union {
struct {
amdgpu_va_handle va_handle;      /*    32     8 */
uint32_t   kms_handle;           /*    40     4 */
int        map_count;            /*    44     4 */
} real;                                  /*    32    16 */
[...]
} u;                                             /*    32    40 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
[...]
struct pb_cache_entry      cache_entry[];        /*   144     0 */

/* size: 144, cachelines: 3, members: 17 */
};

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

3 years agowinsys/amdgpu: make RADEON_ALL_BOS a debug only feature
Pierre-Eric Pelloux-Prayer [Fri, 13 Nov 2020 11:19:14 +0000 (12:19 +0100)]
winsys/amdgpu: make RADEON_ALL_BOS a debug only feature

Improves performance in SPECviewperf13 snx.
e.g.: test10 fps evolution: 235 -> 270.

Extract from "pahole radeonsi_dri.so -C amdgpu_winsys_bo", before:

struct amdgpu_winsys_bo {
struct pb_buffer           base;                 /*     0    32 */
union {
struct {
struct pb_cache_entry cache_entry; /*    32    56 */

/* XXX last struct has 4 bytes of padding */

/* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */
amdgpu_va_handle va_handle;      /*    88     8 */
int        map_count;            /*    96     4 */
_Bool      use_reusable_pool;    /*   100     1 */

/* XXX 3 bytes hole, try to pack */

struct list_head global_list_item; /*   104    16 */
uint32_t   kms_handle;           /*   120     4 */
} real;
[...]
} u;                                             /*    32    96 */
[...]
/* size: 200, cachelines: 4, members: 15 */
};

After:

struct amdgpu_winsys_bo {
struct pb_buffer           base;                 /*     0    32 */
union {
struct {
struct pb_cache_entry cache_entry; /*    32    56 */

/* XXX last struct has 4 bytes of padding */

/* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */
amdgpu_va_handle va_handle;      /*    88     8 */
int        map_count;            /*    96     4 */
_Bool      use_reusable_pool;    /*   100     1 */

/* XXX 3 bytes hole, try to pack */

uint32_t   kms_handle;           /*   104     4 */
} real;                                  /*    32    80 */
} u;                                             /*    32    80 */
/* --- cacheline 1 boundary (64 bytes) was 48 bytes ago --- */
[...]
/* size: 184, cachelines: 3, members: 15 */
};

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

3 years agoaco: create v_mad_u32_u24
Rhys Perry [Fri, 5 Jun 2020 16:36:29 +0000 (17:36 +0100)]
aco: create v_mad_u32_u24

fossil-db (Navi):
Totals from 849 (0.61% of 138791) affected shaders:
SGPRs: 38528 -> 38544 (+0.04%)
VGPRs: 39860 -> 39856 (-0.01%)
CodeSize: 2701880 -> 2702016 (+0.01%)
MaxWaves: 9148 -> 9150 (+0.02%)
Instrs: 509864 -> 509821 (-0.01%); split: -0.01%, +0.00%
Cycles: 3400124 -> 3399628 (-0.01%); split: -0.02%, +0.00%
VMEM: 262757 -> 262672 (-0.03%)
SMEM: 59710 -> 59704 (-0.01%)
Copies: 44461 -> 44466 (+0.01%)

fossil-db (Polaris):
Totals from 1487 (1.06% of 140385) affected shaders:
SGPRs: 54688 -> 55840 (+2.11%)
CodeSize: 2725608 -> 2725720 (+0.00%); split: -0.01%, +0.01%
Instrs: 521394 -> 517710 (-0.71%)
Cycles: 18474108 -> 18410964 (-0.34%)
VMEM: 436992 -> 431028 (-1.36%); split: +0.06%, -1.43%
SMEM: 124503 -> 122564 (-1.56%); split: +0.45%, -2.00%
VClause: 21972 -> 22015 (+0.20%); split: -0.12%, +0.31%
SClause: 14274 -> 14287 (+0.09%)
Copies: 44407 -> 44411 (+0.01%); split: -0.02%, +0.03%
PreSGPRs: 34318 -> 34321 (+0.01%); split: -0.00%, +0.01%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7639>

3 years agoturnip: implement VK_KHR_depth_stencil_resolve support
Samuel Iglesias Gonsálvez [Wed, 23 Sep 2020 10:09:25 +0000 (12:09 +0200)]
turnip: implement VK_KHR_depth_stencil_resolve support

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6884>

3 years agoac: Don't negate strstr return values in ac_query_gpu_info
Michel Dänzer [Wed, 18 Nov 2020 16:54:19 +0000 (17:54 +0100)]
ac: Don't negate strstr return values in ac_query_gpu_info

strstr returns a pointer to the needle sub-string within the haystack
string if the latter contains the former, or NULL otherwise. So this
essentially always set info->is_pro_graphics = true, since probably no
marketing name ever contains all of these sub-strings.

Fixes: b635dff25620 "ac: fix detection of Pro graphics"
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7675>

3 years agov3dv: remove box check from texel buffer copy fragment shader
Iago Toral Quiroga [Wed, 18 Nov 2020 09:59:02 +0000 (10:59 +0100)]
v3dv: remove box check from texel buffer copy fragment shader

We are already ensuring that we only copy the appropriate pixel
rect via the scissor and viewport state, so there is no need to
do this check in the shader.

Using a stress test with 100 buffer to image copies of a single
layered image with 10 miplevels recorded into a command buffer and
measuring the time it gets to execute the command buffer we get
these results:

              | Execution Time |
    ----------|----------------|
    master    |     0.142s     |
    ----------|----------------|
    patch     |     0.071s     |

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7671>

3 years agowinsys/amdgpu: move amdgpu_winsys_bo::lock for better packing
Marek Olšák [Thu, 12 Nov 2020 19:34:24 +0000 (14:34 -0500)]
winsys/amdgpu: move amdgpu_winsys_bo::lock for better packing

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7585>

3 years agowinsys/amdgpu: replace amdgpu_winsys_bo::initial_domain with pb_buffer::placement
Marek Olšák [Thu, 12 Nov 2020 19:29:44 +0000 (14:29 -0500)]
winsys/amdgpu: replace amdgpu_winsys_bo::initial_domain with pb_buffer::placement

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7585>

3 years agowinsys/amdgpu: replace amdgpu_winsys_bo::flags with pb_buffer::usage
Marek Olšák [Thu, 12 Nov 2020 19:25:43 +0000 (14:25 -0500)]
winsys/amdgpu: replace amdgpu_winsys_bo::flags with pb_buffer::usage

Let's use the field so as not to waste memory.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7585>

3 years agowinsys/amdgpu: remove amdgpu_winsys_bo::sparse
Marek Olšák [Thu, 12 Nov 2020 19:09:35 +0000 (14:09 -0500)]
winsys/amdgpu: remove amdgpu_winsys_bo::sparse

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7585>

3 years agowinsys/amdgpu: remove amdgpu_winsys_bo::u::sparse::flags
Marek Olšák [Thu, 12 Nov 2020 19:09:35 +0000 (14:09 -0500)]
winsys/amdgpu: remove amdgpu_winsys_bo::u::sparse::flags

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7585>

3 years agointel/fs: Fix sampler message headers on Gen11+ when using scratch
Kenneth Graunke [Tue, 15 Sep 2020 17:54:05 +0000 (10:54 -0700)]
intel/fs: Fix sampler message headers on Gen11+ when using scratch

Icelake's sampler message header introduces a field in m0.3 bit 0
which controls whether the sampler state pointer should be relative
to bindless sampler state base address or dynamic state base address.

g0.3 bit 0 is part of the per-thread scratch space field.  On older
hardware, we were able to copy that along because the sampler ignored
bits 4:0.  Now, however, we need to mask them out.

Fixes various textureGatherOffsets piglit tests when forcing the FS
to run with 2048 bytes of per-thread scratch space (which is a
per-thread scratch space encoding of 1, meaning bit 0 will be set).

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

3 years agointel/compiler: Do interpolateAtOffset coordinate scaling in NIR
Kenneth Graunke [Wed, 5 Aug 2020 02:01:13 +0000 (19:01 -0700)]
intel/compiler: Do interpolateAtOffset coordinate scaling in NIR

In our source languages, interpolateAtOffset() takes a floating point
offset in the range [-0.5, +0.5].  However, the hardware takes integer
valued offsets in the range [-8, 7], in units of 1/16th of a pixel.

So, we need to multiply and clamp the coordinates.  We were doing this
in the FS backend, but with the advent of IBC, I'd like to avoid doing
it twice.  This patch instead moves the lowering to NIR so we can reuse
it across both backends.

v2: Use nir_shader_instructions_pass (suggested by Eric Anholt).

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6193>

3 years agoiris: Stop quantizing the depth clear value
Nanley Chery [Tue, 17 Nov 2020 00:33:39 +0000 (16:33 -0800)]
iris: Stop quantizing the depth clear value

This function has a number of problems:

 1. It performs 24-bit quantization on a format which shouldn't be
    quantized at all (PIPE_FORMAT_Z32_FLOAT_S8X24_UINT).
 2. The algorithm seems to create a different pixel than HW would in the
    absence of this SW conversion. This can cause issues with depth
    testing.

Instead of adding more code to deal with these issues, delete the
quantization code.

This code originated from i965
(0ae9ce0f29ea1973b850a4e6c6cae8606973036e) and helped to avoid a
regression in Lightsmark 2008. This change continues to avoid that
regression because any new clear value is now casted from double to
float before checking if the resource's clear value has changed.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3783
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7665>

3 years agoci: Bring freedreno into the "warnings clean release build" fold.
Eric Anholt [Tue, 17 Nov 2020 21:08:40 +0000 (13:08 -0800)]
ci: Bring freedreno into the "warnings clean release build" fold.

There are just a couple warnings left for turnip that point to real error
handling we should be adding.

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

3 years agofreedreno: Suppress uninit var warnings from shader stage switch.
Eric Anholt [Tue, 17 Nov 2020 21:43:28 +0000 (13:43 -0800)]
freedreno: Suppress uninit var warnings from shader stage switch.

It seems we have enough branches that the compiler gets confused now, and
I can also suppress the warning by replacing "unreachable()" with
"return".  Unreachable is good for debugging, so just 0-init the values.

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

3 years agofreedreno: Fix uninitialized var warning in afuc using unreachable().
Eric Anholt [Tue, 17 Nov 2020 21:07:39 +0000 (13:07 -0800)]
freedreno: Fix uninitialized var warning in afuc using unreachable().

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

3 years agofreedreno: Fix warning about uninit size for the size==0 special case.
Eric Anholt [Tue, 17 Nov 2020 20:40:26 +0000 (12:40 -0800)]
freedreno: Fix warning about uninit size for the size==0 special case.

The size==0 query case would have just used uninitialized stack data for
sizing its BOs.

Fixes: 536ec9d7f5ab ("freedreno: Refactor fd_resource_create_with_modifiers() into a helper")
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7664>

3 years agofreedreno/a6xx: Fix use of uninitialized img->level in the SSBO/image path.
Eric Anholt [Tue, 17 Nov 2020 20:24:01 +0000 (12:24 -0800)]
freedreno/a6xx: Fix use of uninitialized img->level in the SSBO/image path.

I think enough things lined up that the uninitialized level in the buffer
paths would end effectively not being used (no ubwc, not tiling anyway),
but let's just zero-init it to be sure and quiet the compiler.

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

3 years agofreedreno: Fix release build warnings for asserted temp vars.
Eric Anholt [Tue, 17 Nov 2020 20:13:54 +0000 (12:13 -0800)]
freedreno: Fix release build warnings for asserted temp vars.

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

3 years agoci: Enable -Werror in more clover builds.
Eric Anholt [Tue, 17 Nov 2020 20:06:53 +0000 (12:06 -0800)]
ci: Enable -Werror in more clover builds.

We've slowly been pushing -Werror through the set of CI builds, and it
looks like clover is clean at the moment.  Keep it that way.

Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Acked-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7664>

3 years agod3d12: transition the right planes
Erik Faye-Lund [Mon, 24 Aug 2020 20:47:59 +0000 (22:47 +0200)]
d3d12: transition the right planes

We need to start transitioning at plane 1 for stencil-only resources,
otherwise we end up transitioning the depth-plane instead.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3837
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7672>

3 years agozink: track custom border color samplers and verify against device limits
Mike Blumenkrantz [Tue, 4 Aug 2020 19:42:43 +0000 (15:42 -0400)]
zink: track custom border color samplers and verify against device limits

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7487>

3 years agozink: handle arbitrary border colors using VK_EXT_custom_border_color
Mike Blumenkrantz [Mon, 3 Aug 2020 13:06:24 +0000 (09:06 -0400)]
zink: handle arbitrary border colors using VK_EXT_custom_border_color

fixes mesa/mesa#3171

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7487>

3 years agospirv: workaround setjmp/longjmp crash on MinGW
Michel Zou [Wed, 11 Nov 2020 18:16:50 +0000 (19:16 +0100)]
spirv: workaround setjmp/longjmp crash on MinGW

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7555>

3 years agollvmpipe: fix arith-test build on msvc
Erik Faye-Lund [Wed, 11 Nov 2020 13:54:20 +0000 (14:54 +0100)]
llvmpipe: fix arith-test build on msvc

These functions aren't implemented using plain functions in the MSVC
runtime, so trying to take the function pointers directly cause
compilation errors.

Instead, let's call them from a wrapper-function, and use a
pre-processor define to replace the usage in this case. This makes these
build fine on MSVC.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7549>

3 years agowinsys/d3d12: Use MakeWindowAssociation to remove DXGI's alt+enter handling
Jesse Natalie [Wed, 28 Oct 2020 22:39:33 +0000 (15:39 -0700)]
winsys/d3d12: Use MakeWindowAssociation to remove DXGI's alt+enter handling

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7535>

3 years agod3d12: also reject GDI-supporting pixel-formats
Erik Faye-Lund [Tue, 16 Jun 2020 09:39:07 +0000 (11:39 +0200)]
d3d12: also reject GDI-supporting pixel-formats

In theory, it's possible to request a GDI-supporting, double buffered
pixel-format, and we're not able to support this using the DXGI
swapchains. So let's return NULL here in that case as well.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7535>

3 years agod3d12: Release swapchain buffers before resizing them
Louis-Francis Ratté-Boulianne [Tue, 12 May 2020 03:09:42 +0000 (23:09 -0400)]
d3d12: Release swapchain buffers before resizing them

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7535>

3 years agod3d12: Implement winsys framebuffer
Jesse Natalie [Sat, 25 Apr 2020 20:26:56 +0000 (16:26 -0400)]
d3d12: Implement winsys framebuffer

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7535>

3 years agowgl: Wrap stw_pixelformat.h into extern C
Louis-Francis Ratté-Boulianne [Sat, 25 Apr 2020 20:24:41 +0000 (16:24 -0400)]
wgl: Wrap stw_pixelformat.h into extern C

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7535>

3 years agowgl: Create third buffer when drawing to front buffer
Louis-Francis Ratté-Boulianne [Sat, 23 May 2020 20:45:08 +0000 (16:45 -0400)]
wgl: Create third buffer when drawing to front buffer

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7535>

3 years agowgl: Wait for fence when not using winsys framebuffer
Louis-Francis Ratté-Boulianne [Wed, 27 May 2020 05:50:20 +0000 (01:50 -0400)]
wgl: Wait for fence when not using winsys framebuffer

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7535>

3 years agowgl: Call flush_resource() before presenting
Louis-Francis Ratté-Boulianne [Wed, 27 May 2020 05:47:16 +0000 (01:47 -0400)]
wgl: Call flush_resource() before presenting

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7535>

3 years agowgl: Flush in-between resolving buffer and presenting
Louis-Francis Ratté-Boulianne [Wed, 27 May 2020 05:41:12 +0000 (01:41 -0400)]
wgl: Flush in-between resolving buffer and presenting

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7535>

3 years agowgl: Use winsys framebuffer interface if present
Jesse Natalie [Wed, 18 Mar 2020 20:46:25 +0000 (13:46 -0700)]
wgl: Use winsys framebuffer interface if present

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7535>

3 years agowgl: Add winsys framebuffer object
Jesse Natalie [Sat, 25 Apr 2020 20:04:12 +0000 (16:04 -0400)]
wgl: Add winsys framebuffer object

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7535>

3 years agowgl: Add PFD flags based on stw_winsys callback response
Jesse Natalie [Wed, 18 Mar 2020 17:00:20 +0000 (10:00 -0700)]
wgl: Add PFD flags based on stw_winsys callback response

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7535>

3 years agowgl: Add stw_winsys callback to check which PFD flags should be added
Jesse Natalie [Wed, 18 Mar 2020 16:32:27 +0000 (09:32 -0700)]
wgl: Add stw_winsys callback to check which PFD flags should be added

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7535>

3 years agod3d12: Add D3D12 WGL winsys
Louis-Francis Ratté-Boulianne [Fri, 24 Apr 2020 20:09:07 +0000 (16:09 -0400)]
d3d12: Add D3D12 WGL winsys

Add a winsys for code paths common to the libgl-gdi and
libgl-d3d12 targets when using the D3D12 gallium driver.

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7535>

3 years agowgl: Implement get_adapter_luid callback
Jesse Natalie [Tue, 17 Mar 2020 21:48:12 +0000 (14:48 -0700)]
wgl: Implement get_adapter_luid callback

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7535>

3 years agowgl: Marshal HDC into screen creation and LUID querying
Jesse Natalie [Tue, 17 Mar 2020 21:40:47 +0000 (14:40 -0700)]
wgl: Marshal HDC into screen creation and LUID querying

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7535>

3 years agod3d12: Pipe adapter LUID from callbacks to D3D12 screen init
Jesse Natalie [Tue, 17 Mar 2020 21:30:02 +0000 (14:30 -0700)]
d3d12: Pipe adapter LUID from callbacks to D3D12 screen init

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7535>

3 years agod3d12: Add glon12 target which only includes d3d12 driver
Jesse Natalie [Fri, 21 Feb 2020 21:02:35 +0000 (13:02 -0800)]
d3d12: Add glon12 target which only includes d3d12 driver

This driver has no WGL or GL entrypoints, only the ones required by the
driver-loader.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7535>

3 years agod3d12: Support WINSYS_HANDLE_TYPE_D3D12_RES
Erik Faye-Lund [Wed, 8 Apr 2020 12:44:59 +0000 (14:44 +0200)]
d3d12: Support WINSYS_HANDLE_TYPE_D3D12_RES

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7535>

3 years agomesa/st: Introduce WINSYS_HANDLE_TYPE_D3D12_RES
Erik Faye-Lund [Wed, 8 Apr 2020 12:59:00 +0000 (14:59 +0200)]
mesa/st: Introduce WINSYS_HANDLE_TYPE_D3D12_RES

This is analogous to VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT
from Vulkan, and GL_HANDLE_TYPE_D3D12_RESOURCE_EXT from
GL_EXT_external_objects_win32.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7535>

3 years agov3dv: use VkSurface to retrieve an authenticated display fd
Iago Toral Quiroga [Mon, 16 Nov 2020 08:50:22 +0000 (09:50 +0100)]
v3dv: use VkSurface to retrieve an authenticated display fd

We still need a fallback for the case where the application makes
WSI allocations without a surface (Zink),  but for the general case,
this is the right way to do this, as it would ensure that we use
the same display connection that was used to create the surface.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7631>

3 years agoaco: fix combining max(-min(a, b), c) if a or b uses the neg modifier
Samuel Pitoiset [Tue, 17 Nov 2020 16:14:49 +0000 (17:14 +0100)]
aco: fix combining max(-min(a, b), c) if a or b uses the neg modifier

No fossils-db changes.

Cc: 20.2, 20.3
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7657>

3 years agoradeonsi: fix scan_instruction for bindless inc_wrap/dec_wrap atomics
Marek Olšák [Mon, 16 Nov 2020 23:42:44 +0000 (18:42 -0500)]
radeonsi: fix scan_instruction for bindless inc_wrap/dec_wrap atomics

Fixes: 25fff591c1162 - radeonsi: add support for nir atomic_inc_wrap/atomic_dec_wrap

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7542>

3 years agoradeonsi: fix NGG streamout regression
Marek Olšák [Thu, 12 Nov 2020 16:56:25 +0000 (11:56 -0500)]
radeonsi: fix NGG streamout regression

num_stream_output_components has to be set for non-GS too.

Fixes: 81d106d6eca - radeonsi: lower IO intrinsics - complete rewrite of input/output scanning

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7542>

3 years agoradeonsi: don't add num_vbos_in_user_sgprs to the shader cache key for non-VS
Marek Olšák [Wed, 11 Nov 2020 18:10:06 +0000 (13:10 -0500)]
radeonsi: don't add num_vbos_in_user_sgprs to the shader cache key for non-VS

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7542>

3 years agoradeonsi: don't do VGT_FLUSH before fast launch on gfx10.3
Marek Olšák [Wed, 11 Nov 2020 04:05:30 +0000 (23:05 -0500)]
radeonsi: don't do VGT_FLUSH before fast launch on gfx10.3

I don't see any hangs here. Blender and the Factorio trace work fine.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7542>

3 years agoac: rename num_sh_per_se -> num_sa_per_se
Marek Olšák [Wed, 11 Nov 2020 02:37:39 +0000 (21:37 -0500)]
ac: rename num_sh_per_se -> num_sa_per_se

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7542>

3 years agoac: rename num_render_backends -> max_render_backends
Marek Olšák [Wed, 11 Nov 2020 02:34:27 +0000 (21:34 -0500)]
ac: rename num_render_backends -> max_render_backends

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7542>