mesa.git
14 months agointel/compiler: Use C99 array initializers for prog_data/key sizes
Caio Marcelo de Oliveira Filho [Wed, 19 Feb 2020 16:47:20 +0000 (10:47 -0600)]
intel/compiler: Use C99 array initializers for prog_data/key sizes

This is way better than a pile of STATIC_ASSERTs.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6280>

14 months agointel/cs_intrinsics: Handle 64-bit intrinsics
Jason Ekstrand [Thu, 15 Nov 2018 03:57:59 +0000 (21:57 -0600)]
intel/cs_intrinsics: Handle 64-bit intrinsics

It's safe to do the math in 32 bits because they're all local workgroup
calculations.  We just need to do a conversion at the end.  For a couple
of intrinsics, we just turn them into 32-bit intrinsics and add a u2u64.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6280>

14 months agoiris: Add support for serialized NIR
Jason Ekstrand [Tue, 11 Aug 2020 00:05:56 +0000 (19:05 -0500)]
iris: Add support for serialized NIR

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6280>

14 months agoiris: Implement set_global_binding
Jason Ekstrand [Thu, 25 Oct 2018 22:53:23 +0000 (17:53 -0500)]
iris: Implement set_global_binding

All this has to do is track which globals are bound and make sure the
batch references them every time.  We use A64 messages to access them so
there are no binding table entries to manage.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6280>

14 months agoiris: no-op implement set_compute_resources
Jason Ekstrand [Thu, 25 Oct 2018 22:51:04 +0000 (17:51 -0500)]
iris: no-op implement set_compute_resources

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6280>

14 months agogitlab-ci: test Fossilize with GFX1030
Samuel Pitoiset [Mon, 10 Aug 2020 11:29:14 +0000 (13:29 +0200)]
gitlab-ci: test Fossilize with GFX1030

To make sure we don't completely break ACO GFX1030 support.

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

14 months agoradv/winsys: add null winsys entries for Sienna Cichild/Navy Flounder
Samuel Pitoiset [Mon, 10 Aug 2020 11:28:10 +0000 (13:28 +0200)]
radv/winsys: add null winsys entries for Sienna Cichild/Navy Flounder

We don't know the PCI ID yet.

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

14 months agoradv: fix emitting the border color pointer on the compute queue
Samuel Pitoiset [Tue, 11 Aug 2020 08:00:42 +0000 (10:00 +0200)]
radv: fix emitting the border color pointer on the compute queue

This was just missing.

Fixes: 57e796a12a8 ("radv: Implement VK_EXT_custom_border_color")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: John Galt <johngaltfirstrun@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6276>

14 months agoutil: Fix memory leaks in unit test.
Vinson Lee [Sun, 9 Aug 2020 04:26:12 +0000 (21:26 -0700)]
util: Fix memory leaks in unit test.

Fix warnings reported by Coverity Scan.

Resource leak (RESOURCE_LEAK)
leaked_storage: Variable bt1 going out of scope leaks the storage
it points to.
leaked_storage: Variable bt2 going out of scope leaks the storage
it points to.

Fixes: d0d14f3f6481 ("util: Add unit test for stack backtrace caputure")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6246>

14 months agosrc/mesa: add GL_NV_half_float extension support (v2)
Yogesh Mohan Marimuthu [Fri, 17 Jul 2020 12:08:19 +0000 (17:38 +0530)]
src/mesa: add GL_NV_half_float extension support (v2)

This patch adds support for GL_NV_half_float
extension.

v2: fix main_test failure

Signed-off-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6219>

14 months agodri_util: Update internal_format to GL_RGB8 for MESA_FORMAT_B8G8R8X8_UNORM
Nanley Chery [Mon, 22 Jun 2020 22:19:38 +0000 (15:19 -0700)]
dri_util: Update internal_format to GL_RGB8 for MESA_FORMAT_B8G8R8X8_UNORM

Port the change done for RGBX8888 in
02a1f95386b43bf46cd1c8297d0955242f554fa2.

If XR24 images are considered to be VIEW_CLASS_24_BITS-compatible, it's
reasonable to assume that XB24 images would be as well.

Fixes: bf576772ab4d ("dri_util: add driImageFormatToSizedInternalGLFormat function")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6095>

14 months agoaco: execute branch instructions in WQM if necessary
Daniel Schürmann [Mon, 10 Aug 2020 14:56:25 +0000 (16:56 +0200)]
aco: execute branch instructions in WQM if necessary

It could happen that only the branch condition was computed in WQM
and not the branch instruction.
There is now some rendundancy which should be cleaned up.

Fixes: 3817fa7a4d1f51c385b28a2e45a1edf227526028 ('aco: fix WQM handling in nested loops')
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6260>

14 months agonir: nir_range_analysis needs to be updated for vec16
Jesse Natalie [Tue, 11 Aug 2020 03:28:34 +0000 (20:28 -0700)]
nir: nir_range_analysis needs to be updated for vec16

Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6275>

14 months agoaco: don't move memory accesses to before control barriers
Rhys Perry [Tue, 4 Aug 2020 18:20:21 +0000 (19:20 +0100)]
aco: don't move memory accesses to before control barriers

Fixes random failures of dEQP-VK.image.qualifiers.volatile.cube_array.r32i
and similar tests on Vega.

fossil-db (Navi):
Totals from 6 (0.00% of 135946) affected shaders:
VMEM: 1218 -> 1110 (-8.87%); split: +2.46%, -11.33%
SMEM: 174 -> 189 (+8.62%)
Copies: 84 -> 87 (+3.57%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Fixes: cd392a10d05 ('radv/aco,aco: use scoped barriers')
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6174>

14 months agoradv: limit LATE_ALLOC_GS to prevent a GPU hang on GFX10
Samuel Pitoiset [Tue, 11 Aug 2020 09:26:16 +0000 (11:26 +0200)]
radv: limit LATE_ALLOC_GS to prevent a GPU hang on GFX10

Found by inspection, doesn't fix anything known.

Cc: mesa-stable
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/6279>

14 months agoradv/gfx10: add missing initialization of registers
Samuel Pitoiset [Tue, 11 Aug 2020 08:13:47 +0000 (10:13 +0200)]
radv/gfx10: add missing initialization of registers

Found by inspection.

Cc: mesa-stable
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/6277>

14 months agoetnaviv: completely turn off MSAA
Christian Gmeiner [Tue, 23 Jun 2020 16:33:18 +0000 (18:33 +0200)]
etnaviv: completely turn off MSAA

MSAA worked before etnaviv landed in upstream mesa but got
broken over time. Disable MSAA completely until it is fixed again.

Fixes problems/crashes with applications that want to make use of MSAA.

Cc: <mesa-stable@lists.freedesktop.org>
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5608>

14 months agonir/lower_ssbo: Don't set align_* for atomics
Alyssa Rosenzweig [Thu, 6 Aug 2020 13:13:32 +0000 (09:13 -0400)]
nir/lower_ssbo: Don't set align_* for atomics

Fixes crashes when lowering atomic SSBOs:

   run: ../src/compiler/nir/nir.h:1875: nir_intrinsic_align_mul: Assertion `info->index_map[NIR_INTRINSIC_ALIGN_MUL] > 0' failed.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6204>

14 months agoanv: add a check for depthStencilState before using it
Tapani Pälli [Sat, 8 Aug 2020 07:28:43 +0000 (10:28 +0300)]
anv: add a check for depthStencilState before using it

v2: move the code under existing correct check!

Fixes: e4590c075009 ("anv: depth/stencil dynamic state support")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3375
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Tested-by: Brian Paul <brianp@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6240>

14 months agoanv: fix up dynamic clip emission
Lionel Landwerlin [Mon, 10 Aug 2020 20:58:55 +0000 (23:58 +0300)]
anv: fix up dynamic clip emission

There were 2 issues :

   * We were not emitting the clip state when the pipeline changed

   * On Gen7 we did not program the front facing & cull mode dynamic
     values in the clip state

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: c34d8ac26e0a21 ("anv: handle dynamic viewport count")
Closes https://gitlab.freedesktop.org/mesa/mesa/-/issues/3379

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

14 months agoanv: centralize vk to gen arrays
Lionel Landwerlin [Mon, 10 Aug 2020 21:30:10 +0000 (00:30 +0300)]
anv: centralize vk to gen arrays

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6265>

14 months agofreedreno/decode: try harder to not crash in disasm
Rob Clark [Mon, 10 Aug 2020 15:47:40 +0000 (08:47 -0700)]
freedreno/decode: try harder to not crash in disasm

Move the handling for catching asserts when we start decoding garbage
into disasm-a3xx.  This way it can also cover other cases where cffdec
tries to disassemble memory, such as SP_xS_OBJ_START.

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

14 months agofreedreno/crashdec: handle section name typos
Rob Clark [Sat, 8 Aug 2020 16:50:08 +0000 (09:50 -0700)]
freedreno/crashdec: handle section name typos

The fixes tag isn't so much because it was incorrect before, but because
I'm going to send a kernel patch to fix the typo, and that will break
old crashdec.

Fixes: 1ea4ef0d3be ("freedreno: slurp in decode tools")
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6242>

14 months agofreedreno/ir3: add more disasm stats
Rob Clark [Thu, 6 Aug 2020 17:03:51 +0000 (10:03 -0700)]
freedreno/ir3: add more disasm stats

Add tracking for # of instructions per category, similar to the last
patch.  Also add a few other shader-db stats that were missing on the
disasm side, to make it easier to compare to shaders from cmdstream
traces.

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

14 months agofreedreno/ir3: add tracking for # of instructions per category
Rob Clark [Thu, 6 Aug 2020 16:24:50 +0000 (09:24 -0700)]
freedreno/ir3: add tracking for # of instructions per category

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

14 months agogallium/u_transfer_helper: add util functions for doing deinterleaving during map
Mike Blumenkrantz [Thu, 4 Jun 2020 15:31:28 +0000 (11:31 -0400)]
gallium/u_transfer_helper: add util functions for doing deinterleaving during map

in some cases (e.g., zink and d3d12) we only want to split the depth and stencil
buffers when we're mapping them, and we can handle packed buffers in other cases,
so being able to reuse the u_transfer_helper functionality is still desired but
only if we can preserve the underlying buffer the rest of the time

Kenneth Graunke notes during post-review:
Vulkan reads/copies on packed Z24S8 only return depth, so we need to use separate
Z24 and S8 reads and do packing tricks.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5338>

14 months agogallium: add pipe_transfer_usage for z/s only mappings
Mike Blumenkrantz [Mon, 10 Aug 2020 21:32:05 +0000 (17:32 -0400)]
gallium: add pipe_transfer_usage for z/s only mappings

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5338>

14 months agointel/fs: work around gen12 lower-precision source modifier limitation
Mark Janes [Fri, 7 Aug 2020 20:11:08 +0000 (13:11 -0700)]
intel/fs: work around gen12 lower-precision source modifier limitation

GEN:BUG:1604601757 prevents source modifiers for multiplication of
lower precision integers.

lower_mul_dword_inst() splits 32x32 multiplication into 32x16, and
needs to eliminate source modifiers in this case.

Closes: #3329
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
14 months agointel/fs: Assert if lower_source_modifiers converts 32x16 to 32x32 multiplication
Mark Janes [Fri, 7 Aug 2020 23:35:32 +0000 (16:35 -0700)]
intel/fs: Assert if lower_source_modifiers converts 32x16 to 32x32 multiplication

Lowering source modifiers will convert a 16bit source to a 32bit
value.  In the case of integer multiplication, this will reverse
previous lowering performed by lower_mul_dword_inst.

Assert to prevent an illegal DxD operation (and GPU hang).

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
14 months agoandroid: pan/bi: Separate disasm/compiler targets
Mauro Rossi [Mon, 10 Aug 2020 15:07:03 +0000 (17:07 +0200)]
android: pan/bi: Separate disasm/compiler targets

Fixes the following building errors:

ld.lld: error: undefined symbol: bi_interp_mode_name
>>> referenced by bi_print.c:207 (external/mesa/src/panfrost/bifrost/bi_print.c:207)
...
ld.lld: error: undefined symbol: bi_round_mode_name
>>> referenced by bi_print.c:285 (external/mesa/src/panfrost/bifrost/bi_print.c:285)

ld.lld: error: undefined symbol: bi_clause_type_name
>>> referenced by disassemble.c:142 (external/mesa/src/panfrost/bifrost/disassemble.c:142)
...
ld.lld: error: undefined symbol: bi_ldst_type_name
>>> referenced by disassemble.c:0 (external/mesa/src/panfrost/bifrost/disassemble.c:0)

Fixes: 14bb72c68 ("pan/bi: Separate disasm/compiler targets")
Signed-off-by: Mauro Rossi <issor.oruam@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6261>

14 months agoandroid: pan/mdg: Separate disassembler and compiler targets
Mauro Rossi [Mon, 10 Aug 2020 14:35:25 +0000 (16:35 +0200)]
android: pan/mdg: Separate disassembler and compiler targets

Fixes the following building errors:

ld.lld: error: undefined symbol: mir_print_constant_component
>>> referenced by disassemble.c:356 (external/mesa/src/panfrost/midgard/disassemble.c:356)
...
ld.lld: error: undefined symbol: mir_print_constant_component
>>> referenced by disassemble.c:416 (external/mesa/src/panfrost/midgard/disassemble.c:416)

Fixes: b792d613e ("pan/mdg: Separate disassembler and compiler targets")
Signed-off-by: Mauro Rossi <issor.oruam@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6261>

14 months agoandroid: panfrost: Move pandecode into lib/
Mauro Rossi [Mon, 10 Aug 2020 13:48:40 +0000 (15:48 +0200)]
android: panfrost: Move pandecode into lib/

Fixes the following building errors:

target  C: libpanfrost_decode <= external/mesa/src/panfrost/pandecode/common.c
...
clang: error: no such file or directory: 'external/mesa/src/panfrost/pandecode/common.c'
clang: error: no input files

Fixes: d62a6e7c5 ("panfrost: Move pandecode into lib/")
Signed-off-by: Mauro Rossi <issor.oruam@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6261>

14 months agoandroid: panfrost: Rename encoder/ to lib/
Mauro Rossi [Mon, 10 Aug 2020 13:01:30 +0000 (15:01 +0200)]
android: panfrost: Rename encoder/ to lib/

Fixes the following building errors:

target  C: libpanfrost_encoder <= external/mesa/src/panfrost/encoder/pan_attributes.c
...
clang: error: no such file or directory: 'external/mesa/src/panfrost/encoder/pan_attributes.c'
clang: error: no input files

target  C: libpanfrost_encoder <= external/mesa/src/panfrost/encoder/pan_afbc.c
...
clang: error: no such file or directory: 'external/mesa/src/panfrost/encoder/pan_afbc.c'
clang: error: no input files

Fixes: 1c62b5528 ("panfrost: Rename encoder/ to lib/")
Signed-off-by: Mauro Rossi <issor.oruam@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6261>

14 months agoaco: set constant_data_offset correctly in the case of merged shaders
Rhys Perry [Thu, 6 Aug 2020 13:16:08 +0000 (14:16 +0100)]
aco: set constant_data_offset correctly in the case of merged shaders

setup_nir() is done for all shaders before any of them are selected, so
constant_data_offset could be incorrect for the first shader.

Fixes incorrect geometry in Mafia III and Max Payne 3.

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

14 months agoradeon/vcn: fix jpeg decode for navi10
Thong Thai [Sun, 9 Aug 2020 15:13:57 +0000 (11:13 -0400)]
radeon/vcn: fix jpeg decode for navi10

Fixes an issue where the JPEG decode would timeout when decoding certain JPEG files.

Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: Boyuan Zhang <boyuan.zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6249>

14 months agoradv: Do not consider layouts fast-clearable on compute queue.
Bas Nieuwenhuizen [Thu, 30 Jul 2020 10:21:01 +0000 (12:21 +0200)]
radv: Do not consider layouts fast-clearable on compute queue.

We cannot decompress from the compute queue. While I'm pretty sure
VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL is only useful on the
graphics queue, I cannot find a VU that prevents the transition
from happening on another queue, so we need to be careful here.

This patch ensures we do the decompression on the barrier that changes
the queue ownership.

Another problem was that DCC images were considered fast-clearable
when not DCC compressed, which resulted in a mess with concurrent
queue ownership.

Cc: <mesa-stable@lists.freedesktop.org>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3387
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6252>

14 months agoradv: Add forcecompress debug flag.
Bas Nieuwenhuizen [Sun, 9 Aug 2020 22:10:38 +0000 (00:10 +0200)]
radv: Add forcecompress debug flag.

Enables DCC/HTILE/CMASK/FMASK when supported, not just when we think
it is beneficial.

This is helpful to detect compression bugs with CTS.

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

14 months agointel/perf: export performance counters sorted by [group|set] and name
Marcin Ślusarz [Wed, 10 Jun 2020 13:58:59 +0000 (15:58 +0200)]
intel/perf: export performance counters sorted by [group|set] and name

It's a lot easier to deal with them in RenderDoc when they are
in some meaningful order.

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5788>

14 months agointel/perf: split load_oa_metrics
Marcin Ślusarz [Thu, 9 Jul 2020 17:49:55 +0000 (19:49 +0200)]
intel/perf: split load_oa_metrics

Move oa_metrics_available out of load_oa_metrics and call
build_unique_counter_list outside.

This change is a preparation for the next patch. It should
not have any functional impact.

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5788>

14 months agointel/perf: fix performance counters availability after glFinish
Marcin Ślusarz [Fri, 10 Jul 2020 17:25:10 +0000 (19:25 +0200)]
intel/perf: fix performance counters availability after glFinish

Currently Linux kernel gathers performance counters at fixed
intervals (~5-10ms), so if application uses AMD_performance_monitor
extension and immediately after glFinish() asks GL driver for HW
performance counter values it might not get any data (values == 0).

Fix this by moving the "read counters from kernel" code from
"is query ready" to "get counter values" callback with a loop around
it. Unfortunately it means that the "read counters from kernel"
code can spin for up to 10ms.

Ideally kernel should gather performance counters whenever we ask
it for counter values, but for now we have deal with what we have.

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

14 months agointel/perf: streamline error handling in read_oa_samples_until
Marcin Ślusarz [Fri, 10 Jul 2020 14:24:31 +0000 (16:24 +0200)]
intel/perf: streamline error handling in read_oa_samples_until

No functional changes.

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5788>

14 months agointel/perf: fix how pipeline stats are stored
Marcin Ślusarz [Thu, 9 Jul 2020 18:54:41 +0000 (20:54 +0200)]
intel/perf: fix how pipeline stats are stored

It matters only when counters are not ordered by offset.

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5788>

14 months agointel/perf: fix calculation of used counter space
Marcin Ślusarz [Wed, 10 Jun 2020 13:29:53 +0000 (15:29 +0200)]
intel/perf: fix calculation of used counter space

It matters only when counters are not ordered by offset.

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5788>

14 months agoradv: report a better error message when QueueWaitIdle() failed
Samuel Pitoiset [Fri, 7 Aug 2020 15:18:41 +0000 (17:18 +0200)]
radv: report a better error message when QueueWaitIdle() failed

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

14 months agoradv: report errors back to the application via VK_EXT_debug_report
Samuel Pitoiset [Fri, 7 Aug 2020 14:21:31 +0000 (16:21 +0200)]
radv: report errors back to the application via VK_EXT_debug_report

Help for debugging.

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

14 months agoradv: rework the error function helpers a bit
Samuel Pitoiset [Fri, 7 Aug 2020 14:05:46 +0000 (16:05 +0200)]
radv: rework the error function helpers a bit

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

14 months agoradv: report the spirv-nir logs back to the application
Samuel Pitoiset [Fri, 7 Aug 2020 13:23:03 +0000 (15:23 +0200)]
radv: report the spirv-nir logs back to the application

Via VK_EXT_debug_report to help debugging various SPIRV->NIR issues.

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

14 months agoradv: Fix assert that is too strict.
Bas Nieuwenhuizen [Fri, 7 Aug 2020 18:29:07 +0000 (20:29 +0200)]
radv: Fix assert that is too strict.

The added assert fails on MSAA images if we disable FMASK ....

Reordered things.

Fixes: c6aadbae715 "radv: Don't use both DCC and CMASK for single sample images."
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3385
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6232>

14 months agoradeon/radeon_vce: fix out of target bitrate in CBR mode (H.264)
Louis Li [Tue, 31 Mar 2020 02:20:21 +0000 (10:20 +0800)]
radeon/radeon_vce: fix out of target bitrate in CBR mode (H.264)

StoneyRidge may not comply to required target bitrate
when generating H.264 stream in CBR mode.

Signed-off-by: Louis Li <Ching-shih.Li@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4384>

14 months agor600: Enable compute shaders for NIR code path
Gert Wollny [Sun, 5 Jul 2020 14:56:37 +0000 (16:56 +0200)]
r600: Enable compute shaders for NIR code path

There are still regessions compared to TGSI, but there are also many
fixes.

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

14 months agor600/sfn: Force a minimum of 4 GPRs, it seems to fix atomics
Gert Wollny [Wed, 20 May 2020 22:03:34 +0000 (00:03 +0200)]
r600/sfn: Force a minimum of 4 GPRs, it seems to fix atomics

This fixes spec@arb_compute_shader@execution@atomic-counter on
HD 5450

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

14 months agor600/sfn: handle querying SSBO size
Gert Wollny [Tue, 21 Jul 2020 09:57:52 +0000 (11:57 +0200)]
r600/sfn: handle querying SSBO size

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

14 months agor600/sfn: Correct ssbo instruction handling
Gert Wollny [Tue, 21 Jul 2020 10:00:00 +0000 (12:00 +0200)]
r600/sfn: Correct ssbo instruction handling

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

14 months agor600/sfn: correct allocating and emitting of atomics
Gert Wollny [Tue, 21 Jul 2020 09:56:51 +0000 (11:56 +0200)]
r600/sfn: correct allocating and emitting of atomics

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

14 months agor600/sfn: Add a mapping table for atomics
Gert Wollny [Tue, 21 Jul 2020 09:52:41 +0000 (11:52 +0200)]
r600/sfn: Add a mapping table for atomics

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

14 months agor600/sfn: add r600 specific lowering pass for atomics and use it
Gert Wollny [Tue, 21 Jul 2020 09:50:38 +0000 (11:50 +0200)]
r600/sfn: add r600 specific lowering pass for atomics and use it

v2: rebase to use global variable lists

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

14 months agor600/sfn: Sort uniforms by binding and offset
Gert Wollny [Tue, 21 Jul 2020 09:43:08 +0000 (11:43 +0200)]
r600/sfn: Sort uniforms by binding and offset

This is required to get atomics right.

v2: rebase to use global variable lists

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

14 months agor600: Set PIPE_CAP_NIR_ATOMICS_AS_DEREF to true
Gert Wollny [Tue, 21 Jul 2020 11:39:11 +0000 (13:39 +0200)]
r600: Set PIPE_CAP_NIR_ATOMICS_AS_DEREF to true

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

14 months agogallium + mesa/st: Add PIPE_CAP_NIR_ATOMICS_AS_DEREF and use it
Gert Wollny [Sat, 27 Jun 2020 20:40:56 +0000 (22:40 +0200)]
gallium + mesa/st: Add PIPE_CAP_NIR_ATOMICS_AS_DEREF and use it

This cap is useful for drivers that support hardware atomics and need
special handling to resolve their addresses.

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

14 months agomeson: bump required glvnd version
Eric Engestrom [Thu, 9 Jan 2020 15:10:53 +0000 (15:10 +0000)]
meson: bump required glvnd version

https://github.com/KhronosGroup/EGL-Registry/pull/95 has moved
a couple of extensions defines and functions to the upstream `eglext.h`,
but when 9a74746bd1f3bd28d4c4 sync'ed these files we broke compilation
of apps that require these symbols on systems that don't have the
updated Khronos headers.

On non-GLVND builds, we still provide these headers, so everything's
fine, but on GLVND builds the Khronos headers are external so we need to
make sure we have a libglvnd version that's recent enough.

Fixes: 9a74746bd1f3bd28d4c4 ("EGL: sync headers with Khronos")
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6069>

14 months agodriconf: fix force_gl_vendor description
Eric Engestrom [Thu, 6 Aug 2020 14:05:51 +0000 (16:05 +0200)]
driconf: fix force_gl_vendor description

The option is not a toggle to "allow GPU vendor to be overridden", it
*is* the override.

Fixes: dca119f12c291d7665d7 ("mesa/gallium: add dric option to allow overriding GL vendor string")
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6207>

14 months agoegl/entrypoint-check: add check that GLVND and plain EGL have the same entrypoints
Eric Engestrom [Fri, 3 Apr 2020 10:29:04 +0000 (12:29 +0200)]
egl/entrypoint-check: add check that GLVND and plain EGL have the same entrypoints

Cc: mesa-stable
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4448>

14 months agoegl/entrypoint-check: split sort-check into a function
Eric Engestrom [Fri, 3 Apr 2020 10:23:27 +0000 (12:23 +0200)]
egl/entrypoint-check: split sort-check into a function

Cc: mesa-stable
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4448>

14 months agoCorrect a typo in threads_win32.h
Felix Yan [Sat, 8 Aug 2020 05:35:35 +0000 (05:35 +0000)]
Correct a typo in threads_win32.h

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

14 months agopick-ui: specify git commands in "resolve cherry pick" message
Eric Engestrom [Wed, 29 Jul 2020 11:27:51 +0000 (13:27 +0200)]
pick-ui: specify git commands in "resolve cherry pick" message

Cc: mesa-stable
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6134>

14 months agozink: Fix 32-bit compilation
Joshua Ashton [Sat, 8 Aug 2020 06:24:56 +0000 (07:24 +0100)]
zink: Fix 32-bit compilation

`sizeof(void*) != sizeof(VkShaderModule)` on x86 hence this fails with `-Werror=int-conversion`

Fixes: 0f059d550bd "zink: split up creating zink_shader objects and VkShaderModule objects"
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6239>

14 months agoi965: add support for force_gl_vendor
Timothy Arceri [Thu, 6 Aug 2020 04:25:42 +0000 (14:25 +1000)]
i965: add support for force_gl_vendor

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3363
Reviewed-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6198>

14 months agofreedreno/ir3: don't install ir3_compiler cmdline tool
Rob Clark [Fri, 7 Aug 2020 23:14:38 +0000 (16:14 -0700)]
freedreno/ir3: don't install ir3_compiler cmdline tool

It is mostly just useful to us.. and it is big since it links in nir and
most of the rest of gallium.

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

14 months agofreedreno/registers: add some missing regs to build
Rob Clark [Fri, 7 Aug 2020 23:04:22 +0000 (16:04 -0700)]
freedreno/registers: add some missing regs to build

Needed for installed version of crashdec/cffdump.

Fixes: 9c33c538981 ("freedreno/registers: install gzip'd register database")
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6234>

14 months agomeson/freedreno: Fix lua requirement
Dylan Baker [Fri, 7 Aug 2020 16:14:03 +0000 (09:14 -0700)]
meson/freedreno: Fix lua requirement

Freedreno needs at least Lua 5.2, but the current code will report found
for 5.1, which doesn't actually work.

Fixes: caa107cb8db930bc59cd557a325a6a0bc4a86565
       ("freedreno/decode: move dependencies up a level")

Reviewed-by: Rob Clark <robclark@freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6229>

14 months agoradeonsi: various fixes for gfx10.3
Marek Olšák [Thu, 30 Jul 2020 09:27:47 +0000 (05:27 -0400)]
radeonsi: various fixes for gfx10.3

The magic numbers fix sample shading.
The bypass flag is optional.

Fixes: a23802bcb9a - ac,radeonsi: start adding support for gfx10.3
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6137>

14 months agoradeonsi: remove the NGG hack decreasing LDS usage to deal with overflows
Marek Olšák [Thu, 30 Jul 2020 12:32:15 +0000 (08:32 -0400)]
radeonsi: remove the NGG hack decreasing LDS usage to deal with overflows

The LDS size can't overflow anymore, so we can use the correct max LDS size.

Fixes: a23802bcb9a - ac,radeonsi: start adding support for gfx10.3
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6137>

14 months agoradeonsi: add a common function for getting the size of gs_ngg_scratch
Marek Olšák [Thu, 30 Jul 2020 12:31:22 +0000 (08:31 -0400)]
radeonsi: add a common function for getting the size of gs_ngg_scratch

The next commit will use it.

Fixes: a23802bcb9a - ac,radeonsi: start adding support for gfx10.3
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6137>

14 months agoradeonsi: don't count unusable vertices to the NGG LDS size
Marek Olšák [Thu, 30 Jul 2020 12:19:48 +0000 (08:19 -0400)]
radeonsi: don't count unusable vertices to the NGG LDS size

Now we get optimal LDS usage.

Fixes: a23802bcb9a - ac,radeonsi: start adding support for gfx10.3
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6137>

14 months agoradeonsi: fix applying the NGG minimum vertex count requirement
Marek Olšák [Thu, 30 Jul 2020 12:19:48 +0000 (08:19 -0400)]
radeonsi: fix applying the NGG minimum vertex count requirement

The code applied the restriction too late, which could overflow LDS size,
which started happening more often after the minimum vertex count was
increased for Sienna.

Incorporate the clamping into the previous code for rounding up the counts.
Now the LDS size can never overflow, but it may use vector lanes less
efficiently (max_gsprims can be decreased more), which will be addressed
in the next commit.

Fixes: 4ecc39e1aa1 ("radeonsi/gfx10: NGG geometry shader PM4 and upload")
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6137>

14 months agoradeonsi: increase minimum NGG vertex count requirement per workgroup on gfx 10.3
Marek Olšák [Wed, 29 Jul 2020 23:04:38 +0000 (19:04 -0400)]
radeonsi: increase minimum NGG vertex count requirement per workgroup on gfx 10.3

Fixes: a23802bcb9a - ac,radeonsi: start adding support for gfx10.3
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6137>

14 months agoradeonsi: use the same units for esgs_ring_size and ngg_emit_size
Marek Olšák [Thu, 30 Jul 2020 12:04:28 +0000 (08:04 -0400)]
radeonsi: use the same units for esgs_ring_size and ngg_emit_size

for consistency

Fixes: a23802bcb9a - ac,radeonsi: start adding support for gfx10.3
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6137>

14 months agoradeonsi: use correct wave size in gfx10_ngg_calculate_subgroup_info
Marek Olšák [Thu, 30 Jul 2020 11:47:42 +0000 (07:47 -0400)]
radeonsi: use correct wave size in gfx10_ngg_calculate_subgroup_info

Fixes: 88efb63cafc ("radeonsi/gfx10: implement Wave32")
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6137>

14 months agoRevert "radeonsi: honor a user-specified pitch on gfx10.3"
Marek Olšák [Wed, 29 Jul 2020 23:06:44 +0000 (19:06 -0400)]
Revert "radeonsi: honor a user-specified pitch on gfx10.3"

This reverts commit c4b5fd9ab096a0bb5106b93191b13c81cc32243b.

It breaks mipmapping. This is only meant to be used by OpenCL, which allows
setting a user pitch for linear images. In all other cases, don't support
a custom pitch.

Fixes: c4b5fd9ab096a0bb51 "radeonsi: honor a user-specified pitch on gfx10.3"
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6137>

14 months agoac/gpu_info: set num_tiles_pipes on gfx10+ too
Marek Olšák [Thu, 30 Jul 2020 01:43:04 +0000 (21:43 -0400)]
ac/gpu_info: set num_tiles_pipes on gfx10+ too

Based on PAL.

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

14 months agoradeonsi: enable ETC2 hw acceleration on Raven2
Marek Olšák [Wed, 5 Aug 2020 17:12:06 +0000 (13:12 -0400)]
radeonsi: enable ETC2 hw acceleration on Raven2

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6213>

14 months agozink: pre-hash gfx-pipeline-state
Antonio Caggiano [Fri, 24 Jul 2020 14:50:15 +0000 (16:50 +0200)]
zink: pre-hash gfx-pipeline-state

Store a hash in `zink_gfx_pipeline_state` to keep track of state
changes and avoid to recompute it when the state has not changed.

Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6061>

14 months agozink: rename zink_gfx_program::stages to 'modules'
Mike Blumenkrantz [Tue, 30 Jun 2020 17:01:09 +0000 (13:01 -0400)]
zink: rename zink_gfx_program::stages to 'modules'

we've been confusing 'stages' and 'shaders' over and over for a long time,
so maybe having a totally different name will help here

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

14 months agozink: always compile shaders in pipeline order
Mike Blumenkrantz [Tue, 30 Jun 2020 13:59:57 +0000 (09:59 -0400)]
zink: always compile shaders in pipeline order

in order to accurately perform slot/location mapping that's consistent across
stages, we need to go through the stages in order so that we can pass each successive
slot map allocation along to the next compiled stage

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

14 months agozink: start using per-stage flags for new shaders, refcount shader modules
Mike Blumenkrantz [Tue, 30 Jun 2020 13:57:19 +0000 (09:57 -0400)]
zink: start using per-stage flags for new shaders, refcount shader modules

we don't want to recompile shaders if we don't have to, so we can set bitflags
upon receiving new shader states and then compile only the stages that have
changed while refcounting the unchanged stages

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

14 months agozink: use ZINK_SHADER_COUNT instead of PIPE_SHADER_TYPES - 1 everywhere
Mike Blumenkrantz [Tue, 30 Jun 2020 12:55:07 +0000 (08:55 -0400)]
zink: use ZINK_SHADER_COUNT instead of PIPE_SHADER_TYPES - 1 everywhere

this is just for convenience and consistency

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

14 months agozink: split up creating zink_shader objects and VkShaderModule objects
Mike Blumenkrantz [Sat, 13 Jun 2020 16:54:36 +0000 (12:54 -0400)]
zink: split up creating zink_shader objects and VkShaderModule objects

the actual VkShaderModule is only needed when we're creating a program to
draw with, so this can be split off for "uncompiled" and "compiled" shader
objects which will facilitate implementing shader keys

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

14 months agozink: refcount zink_gfx_program objects
Mike Blumenkrantz [Sat, 13 Jun 2020 19:53:29 +0000 (15:53 -0400)]
zink: refcount zink_gfx_program objects

now that we're tracking these by shader, we want to ensure that they live through
each render pass successfully if there's no flush regardless of the timing when the
shader objects are destroyed. this becomes useful when we split up shader create and compile
functionality in future patches, at which point program refcounts can be changed
during successive draw calls, potentially resulting in a program being destroyed at that
point when it shouldn't be

with this patch, each shader used by the program gets a reference, with the renderpass
batch itself becoming the owner of the program such that it will be deleted
when the draw state gets invalidated and a new program is created

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

14 months agozink: adjust zink_shader struct to contain full streamout info
Mike Blumenkrantz [Sat, 13 Jun 2020 15:39:00 +0000 (11:39 -0400)]
zink: adjust zink_shader struct to contain full streamout info

move remapped register_index -> slot into a separate value on the struct
in order to preserve the register_index value

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

14 months agozink: move shader state methods for pipe_context into zink_program.c
Mike Blumenkrantz [Sat, 13 Jun 2020 14:45:22 +0000 (10:45 -0400)]
zink: move shader state methods for pipe_context into zink_program.c

just moving these so all the shader code can be in one place

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

14 months agointel/dump_gpu: add an option to capture a single frame
Lionel Landwerlin [Wed, 4 Mar 2020 15:55:46 +0000 (17:55 +0200)]
intel/dump_gpu: add an option to capture a single frame

We use the driver identifier buffer to get the information about the
current frame.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2201>

14 months agointel/dump_gpu: fix --platform option
Lionel Landwerlin [Wed, 4 Mar 2020 15:38:48 +0000 (17:38 +0200)]
intel/dump_gpu: fix --platform option

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2201>

14 months agoanv: track the current frame and write it into the driver identifier BO
Lionel Landwerlin [Wed, 4 Mar 2020 23:15:57 +0000 (01:15 +0200)]
anv: track the current frame and write it into the driver identifier BO

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2201>

14 months agointel/dump_gpu: only map in GTT buffers not previously mapped
Lionel Landwerlin [Sun, 13 Oct 2019 21:42:27 +0000 (00:42 +0300)]
intel/dump_gpu: only map in GTT buffers not previously mapped

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2201>

14 months agointel/dump_gpu: add an only-capture option
Lionel Landwerlin [Thu, 3 Oct 2019 21:55:43 +0000 (00:55 +0300)]
intel/dump_gpu: add an only-capture option

This option allows for smaller aub files to be generated by only
storing the BOs flagged with EXEC_OBJECT_CAPTURE.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2201>

14 months agointel/dump_gpu: set default device_override
Lionel Landwerlin [Thu, 3 Oct 2019 21:55:02 +0000 (00:55 +0300)]
intel/dump_gpu: set default device_override

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2201>

14 months agointel/dump_gpu: further track mapping of BOs
Lionel Landwerlin [Thu, 3 Oct 2019 08:05:45 +0000 (11:05 +0300)]
intel/dump_gpu: further track mapping of BOs

We can go further in tracking what BOs are written to by the driver by
tracking when a buffer in unmapped. A BO could be mmap, written, unmap
and never be written to again. In such case we can just write the BO's
content on the first exec buf after unmap and never write it again.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2201>

14 months agointel/dump_gpu: only write BOs mapped by the driver
Lionel Landwerlin [Wed, 2 Oct 2019 23:13:32 +0000 (02:13 +0300)]
intel/dump_gpu: only write BOs mapped by the driver

Track what BOs are mapped by the driver and only write those. We can
safely assume that when not mapped there is no data to save.

v2: Don't forget to return the ret (Rafael)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2201>

14 months agozink: set primitive restart cap
Mike Blumenkrantz [Fri, 31 Jul 2020 13:32:23 +0000 (09:32 -0400)]
zink: set primitive restart cap

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

14 months agozink: use util_draw_vbo_without_prim_restart for unsupported prim modes
Mike Blumenkrantz [Wed, 1 Jul 2020 21:45:18 +0000 (17:45 -0400)]
zink: use util_draw_vbo_without_prim_restart for unsupported prim modes

this fixes up primitive restart functionality for the primitive types that
vulkan doesn't support using primitive restart with

fixes #2873

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