Jason Ekstrand [Thu, 23 Sep 2021 17:45:28 +0000 (12:45 -0500)]
v3dv: Use the common GetDeviceQueue implementation
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13003>
Jason Ekstrand [Thu, 23 Sep 2021 17:44:31 +0000 (12:44 -0500)]
turnip: Switch to common GetDeviceQueues2 and DeviceWaitIdle
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13003>
Jason Ekstrand [Thu, 23 Sep 2021 17:43:12 +0000 (12:43 -0500)]
radv: Switch to common GetDeviceQueues2 and DeviceWaitIdle
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13003>
Jason Ekstrand [Thu, 23 Sep 2021 17:41:06 +0000 (12:41 -0500)]
anv: Switch to common GetDeviceQueues2 and DeviceWaitIdle
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13003>
Jason Ekstrand [Thu, 23 Sep 2021 17:40:19 +0000 (12:40 -0500)]
vulkan/device: Add a common DeviceWaitIdle implementation
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13003>
Jason Ekstrand [Thu, 23 Sep 2021 17:18:08 +0000 (12:18 -0500)]
vulkan/device: Add a common GetDeviceQueue2 implementation
If we store the queues in a linked list in the device as vk_queue_init
is called then we can handle enumeration in common code.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13003>
Jason Ekstrand [Tue, 28 Sep 2021 15:11:42 +0000 (10:11 -0500)]
panvk: Drop panvk_queue::flags/queue_family_index
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Tested-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13003>
Jason Ekstrand [Thu, 23 Sep 2021 16:43:29 +0000 (11:43 -0500)]
v3dv: Drop v3dv_queue::flags
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13003>
Jason Ekstrand [Thu, 23 Sep 2021 16:39:53 +0000 (11:39 -0500)]
turnip: Drop tu_queue::flags/queue_family_index/queue_idx
They're now part of vk_queue.
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13003>
Jason Ekstrand [Thu, 23 Sep 2021 16:38:35 +0000 (11:38 -0500)]
lavapipe: Drop lvp_queue::flags
It's now part of vk_queue
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13003>
Jason Ekstrand [Thu, 23 Sep 2021 16:37:40 +0000 (11:37 -0500)]
radv: Drop radv_queue::flags/queue_family_index/queue_idx
They're now part of vk_queue.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13003>
Jason Ekstrand [Thu, 23 Sep 2021 16:34:15 +0000 (11:34 -0500)]
anv: Drop anv_queue::flags
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13003>
Jason Ekstrand [Thu, 23 Sep 2021 16:14:36 +0000 (11:14 -0500)]
vulkan: Add the pCreateInfo to vk_queue_init()
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13003>
Jason Ekstrand [Thu, 23 Sep 2021 16:57:20 +0000 (11:57 -0500)]
panvk: Use vk_command_buffer
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Tested-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13003>
Jason Ekstrand [Thu, 23 Sep 2021 16:49:21 +0000 (11:49 -0500)]
panvk: Use vk_queue
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Tested-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13003>
Jason Ekstrand [Mon, 27 Sep 2021 23:52:56 +0000 (18:52 -0500)]
iris: Return 1 for PIPE_COMPUTE_CAP_IMAGES_SUPPORTED
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13072>
Jason Ekstrand [Mon, 27 Sep 2021 23:52:09 +0000 (18:52 -0500)]
iris: Handle states=NULL in iris_bind_sampler_states
Clover likes to do this to clear our a bunch of samplers without
actually passing an array of NULL pointers. It's easy enough to
handle in iris.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13072>
Yiwei Zhang [Tue, 28 Sep 2021 07:00:13 +0000 (07:00 +0000)]
venus: properly check and fill ahb buffer properties
When it comes to AHB, pExternalBufferInfo->handleType is already
overridden to the renderer handle type. Thus the AHB buffer prop path is
not used. However, this is not caught by cts, vvl or apps because the
host renderer memory features so far satisfy the ahb requirement.
Fixes:
ebf0e455063 ("venus: add ahb image and buffer properties query support")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13076>
Luis Felipe Strano Moraes [Fri, 24 Sep 2021 19:57:05 +0000 (12:57 -0700)]
docs: Add documentation regarding INTEL_MEASURE to envvars doc.
This was initially written by Mark Janes, and was part of MR 7354.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Mike Blumenkrantz <michael.b.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13043>
Luis Felipe Strano Moraes [Fri, 24 Sep 2021 19:55:23 +0000 (12:55 -0700)]
docs: Clean up environment variable docs for Intel drivers.
- Change section name to be more general
- Remove INTEL_SCALAR_VS (dropped as part of release 20.3)
- Sort alphabetically
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Mike Blumenkrantz <michael.b.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13043>
Daniel Schürmann [Tue, 28 Sep 2021 16:11:28 +0000 (17:11 +0100)]
aco: clang-format
No changes, just formatting.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13087>
Boris Brezillon [Mon, 20 Sep 2021 10:39:12 +0000 (12:39 +0200)]
panfrost: Use an identity swizzle for RAW formats
When the render target format is raw, the swizzle is ignored. Let's
set it to identity to avoid misleading the pandecode reader into
thinking the swizzle is applied.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Suggested-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12793>
Boris Brezillon [Mon, 6 Sep 2021 12:27:01 +0000 (14:27 +0200)]
pan/lower_fb: Add support for rgb10a2 _SINT variants
It's just a matter of taking the sign bit into account in the
pack/unpack routines.
Needed for panvk rgb10a2_sint blits.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12793>
Boris Brezillon [Mon, 6 Sep 2021 12:19:28 +0000 (14:19 +0200)]
pan/lower_fb: Add support for B10G10R10A2_UINT variants
The components are re-ordered before packing/unpacking, so nothing to
do here except adding the missing case in the switch statements.
Needed for panvk bgr10a2_uint blits.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12793>
Boris Brezillon [Mon, 6 Sep 2021 12:16:58 +0000 (14:16 +0200)]
pan/lower_fb: Re-order components when dealing with raw formats
The output swizzle defined in the render-target descriptor is ignored
when the format is RAW. In that case, we have to swap the components
when lowering FB stores/loads if we want to get the right color.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12793>
Boris Brezillon [Mon, 17 May 2021 12:53:05 +0000 (14:53 +0200)]
pan/lower_fb: Support SNORM8 unpacking
Needed for panvk blend lowering.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12793>
Boris Brezillon [Fri, 24 Sep 2021 14:10:03 +0000 (16:10 +0200)]
pan/bi: Fix 1DArray image coordinate retrieval
In NIR image instructions, the array index always follows the last
image coordinate, meaning that array index is in coord.y for 1D
arrays. But the current panfrost ABI wants it in coord.z regardless of
the image dimension.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13078>
Timur Kristóf [Fri, 27 Aug 2021 13:45:59 +0000 (15:45 +0200)]
aco: Omit p_extract after ds_read with matching bit size.
Fossil DB stats on Sienna Cichlid:
Totals from 135 (0.10% of 128647) affected shaders:
CodeSize: 525184 -> 523704 (-0.28%)
Instrs: 92835 -> 92684 (-0.16%)
Latency: 311528 -> 311055 (-0.15%)
InvThroughput: 86572 -> 86455 (-0.14%)
Copies: 7666 -> 7650 (-0.21%)
Fossil DB stats on Sienna Cichlid with NGGC on:
Totals from 58374 (45.38% of 128647) affected shaders:
CodeSize:
160322912 ->
159622564 (-0.44%)
Instrs:
30755822 ->
30639193 (-0.38%)
Latency:
136713768 ->
136690360 (-0.02%)
InvThroughput:
21739219 ->
21658151 (-0.37%)
Copies: 3297969 -> 3297953 (-0.00%)
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11560>
Timur Kristóf [Wed, 23 Jun 2021 16:28:18 +0000 (18:28 +0200)]
aco: Implement integer conversions using p_extract.
Fossil DB stats on Sienna Cichlid:
Totals from 563 (0.44% of 128647) affected shaders:
SpillSGPRs: 1381 -> 1382 (+0.07%)
SpillVGPRs: 1606 -> 1552 (-3.36%)
CodeSize: 2474724 -> 2446612 (-1.14%); split: -1.15%, +0.02%
Scratch: 181248 -> 180224 (-0.56%)
Instrs: 440973 -> 435091 (-1.33%); split: -1.35%, +0.01%
Latency: 9123609 -> 8517830 (-6.64%); split: -6.66%, +0.02%
InvThroughput: 3685256 -> 3383293 (-8.19%); split: -8.22%, +0.02%
VClause: 8425 -> 8372 (-0.63%)
Copies: 66553 -> 66681 (+0.19%); split: -0.49%, +0.68%
Branches: 13824 -> 13825 (+0.01%); split: -0.01%, +0.01%
PreSGPRs: 21816 -> 21824 (+0.04%)
Fossil DB stats on Sienna Cichlid with NGGC on:
Totals from 58802 (45.71% of 128647) affected shaders:
SpillSGPRs: 6541 -> 6542 (+0.02%)
SpillVGPRs: 1606 -> 1552 (-3.36%)
CodeSize:
162976608 ->
162244340 (-0.45%); split: -0.45%, +0.00%
Scratch: 181248 -> 180224 (-0.56%)
Instrs:
31163521 ->
31098078 (-0.21%); split: -0.21%, +0.00%
Latency:
146893569 ->
144920070 (-1.34%); split: -1.34%, +0.00%
InvThroughput:
25384324 ->
25035940 (-1.37%); split: -1.38%, +0.00%
VClause: 552310 -> 552257 (-0.01%)
Copies: 3356856 -> 3356984 (+0.00%); split: -0.01%, +0.01%
Branches: 1237314 -> 1237315 (+0.00%); split: -0.00%, +0.00%
PreSGPRs: 2185339 -> 2185347 (+0.00%)
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11560>
Timur Kristóf [Wed, 23 Jun 2021 16:27:19 +0000 (18:27 +0200)]
aco: Allow p_extract to have different definition and operand sizes.
Makes p_extract more flexible and prepares it to be usable
for other use cases.
No Fossil DB changes.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11560>
Marek Olšák [Sun, 26 Sep 2021 18:18:45 +0000 (14:18 -0400)]
radeonsi: implement shader-based culling for lines
This helps some viewperf subtests.
Only view XY culling is done. Edgeflags are always disabled with lines.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048>
Marek Olšák [Sun, 26 Sep 2021 19:21:34 +0000 (15:21 -0400)]
ac/llvm: rename ac_cull_triangle -> ac_cull_primitive
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048>
Marek Olšák [Sun, 26 Sep 2021 16:49:00 +0000 (12:49 -0400)]
radeonsi: add gfx10 helpers for determining whether edgeflags are enabled
They will return false when culling lines.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048>
Marek Olšák [Sun, 26 Sep 2021 14:17:28 +0000 (10:17 -0400)]
radeonsi: always use the correct number of vertices in NGG shader code
This is always 3 now, but it will be 2 for lines.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048>
Marek Olšák [Sun, 26 Sep 2021 16:06:19 +0000 (12:06 -0400)]
ac/llvm: pass cull options into cull_bbox directly
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048>
Marek Olšák [Sun, 26 Sep 2021 12:45:19 +0000 (08:45 -0400)]
radeonsi: disallow NGG fast launch on Navi1x because VGT_FLUSH makes it slower
This improves viewperf performance on Navi1x.
All Navi1x fast launch workarounds are removed and all fast launch
codepaths are disabled.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048>
Marek Olšák [Sun, 26 Sep 2021 12:40:18 +0000 (08:40 -0400)]
radeonsi: fix clearing index_size for NGG fast launch
Cc: 21.1 21.2 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048>
Marek Olšák [Sun, 26 Sep 2021 08:29:57 +0000 (04:29 -0400)]
radeonsi: strenthen the ngg->legacy hw workaround, fix fast launch hangs too
Cc: 20.1 20.2 <mesa-stable@lists.freedesktop.org>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048>
Marek Olšák [Sun, 26 Sep 2021 08:29:07 +0000 (04:29 -0400)]
ac/gpu_info: fix the comment for the NGG->legacy transition bug
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048>
Marek Olšák [Sun, 26 Sep 2021 07:19:40 +0000 (03:19 -0400)]
radeonsi: don't check ngg_culling != 0 for fast launch because it's tautology
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048>
Marek Olšák [Sat, 25 Sep 2021 17:15:37 +0000 (13:15 -0400)]
radeonsi: clean prefer_mono for the blit VS
This was missed when I was reworking shader key updates.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048>
Marek Olšák [Thu, 23 Sep 2021 12:06:34 +0000 (08:06 -0400)]
radeonsi: reduce NGG culling on/off transitions by keeping it enabled
When it's enabled, it stays enabled until the next shader change
or an incompatible primitive type, etc.
This improves performance for viewperf/snx.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048>
Marek Olšák [Sun, 26 Sep 2021 06:20:52 +0000 (02:20 -0400)]
radeonsi: use the optimal draw packet sequence for VGT_FLUSH
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048>
Marek Olšák [Thu, 23 Sep 2021 12:05:04 +0000 (08:05 -0400)]
radeonsi: set vs_uses_base_instance using C++ template arguments
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048>
Marek Olšák [Sat, 25 Sep 2021 16:47:28 +0000 (12:47 -0400)]
radeonsi: decrease vertex count threshold for shader culling to 128
to match radv
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048>
Marek Olšák [Mon, 20 Sep 2021 11:44:50 +0000 (07:44 -0400)]
radeonsi: change the units of oversub_pc_factor to integer multiples of 1/4
to match radv
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048>
Marek Olšák [Sat, 25 Sep 2021 08:53:47 +0000 (04:53 -0400)]
radeonsi: fix a depth texturing performance regression on gfx6-7
Fixes:
0580d4c1 "radeonsi: enable HTILE with mipmapping on gfx9+"
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5398
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048>
Joshua Ashton [Mon, 27 Sep 2021 21:41:23 +0000 (22:41 +0100)]
radv: Add noatocdithering option to RADV_DEBUG
Was useful in testing a difference between D3D and VK ATOC rendering earlier today, would be nice to check this more easily in future.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13069>
Lionel Landwerlin [Tue, 28 Sep 2021 09:17:07 +0000 (12:17 +0300)]
nir: fix opt_memcpy src/dst mixup
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes:
f6667cb0ce828a ("nir: Add a memcpy optimization pass")
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13079>
Boris Brezillon [Tue, 28 Sep 2021 08:28:01 +0000 (10:28 +0200)]
panvk/ci: Trigger bifrost jobs on vulkan changes
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Tue, 28 Sep 2021 09:33:04 +0000 (11:33 +0200)]
panvk: Split var copies before lowering them
Otherwise we hit an assert() in the nir_lower_var_copies() path.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Tue, 28 Sep 2021 09:20:11 +0000 (11:20 +0200)]
panvk: Handle VK_REMAINING_{MIP_LEVELS,ARRAY_LAYERS) when creating image views
Othewise last_{layer,level} are out of bounds.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Sun, 26 Sep 2021 14:12:11 +0000 (16:12 +0200)]
panvk: Fix stencil clear assignment in panvk_cmd_fb_info_set_subpass()
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Sun, 26 Sep 2021 14:11:37 +0000 (16:11 +0200)]
panvk: Fix size overflow in GetBufferMemoryRequirements()
align64() will overflow if buffer->size is bigger than UINT64_MAX - 63.
Fixes dEQP-VK.api.buffer.basic.size_max_uint64.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Fri, 24 Sep 2021 14:01:27 +0000 (16:01 +0200)]
panvk: Fix 1DArray image to buffer copy
The img2buf shaders expect the array index to be placed in coord.y when
copying a 1D array. Adjust the compute job instantiation to match this
behavior.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 23 Sep 2021 14:17:32 +0000 (16:17 +0200)]
panvk: Only prepare texture descriptors when the image is sampled
Not that input attachments will be lowered to textures, so we need to
create a texture descriptor in that case too.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 23 Sep 2021 14:15:02 +0000 (16:15 +0200)]
panvk: Don't expect subpasses to use all RTs
Some might use a subset, and that's fine, we just need to disable unused
RTs when beginning a subpass, which we do.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 23 Sep 2021 14:10:51 +0000 (16:10 +0200)]
panvk: Fix an overflow on cmdbuf->state.clear
We assume the cmdbuf->state.clear array will have one entry per
attachment, but clearValueCount might be smaller if some attachments
are not cleared.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 23 Sep 2021 11:10:28 +0000 (13:10 +0200)]
panvk: Handle input varyings without previous writes
Some input varyings might not be written by any of the active stages
preceding the stage reading the varying (e.g. gl_Layer should be set
to 0 when not written by vertex/geometry shaders). In this case, we can
insert a dummy varying attribute returning zero. This is actually what
the code intended to do, but 2 things were missing:
1. formats[NONE] is not mapping to the CONSTANT0 format
2. the offset and strides should always be set to 0 when using a
CONSTANT0 attribute
All of this is needed to have the input attachments working. Indeed, we
use the nir_lower_input_attachments() pass which lowers input attachment
loads to texel fetches, and the txf operation is passed the layer_id
in its 3rd coordinate.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 23 Sep 2021 07:58:41 +0000 (09:58 +0200)]
panvk: Avoid allocating sysvals UBOs when the pipeline has one
The static sysval UBO attached to the pipeline will be used anyway,
so let's not waste memory for sysvals if we can avoid it.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 23 Sep 2021 07:54:37 +0000 (09:54 +0200)]
panvk: Fix multisample image copies
panvk_meta_copy_img2img() was assuming single-sample images, but the
spec actually allows copying multisample images, as long as the source
and destination agree on the number of samples.
Let's extend the img2img copy logic to support that case.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 23 Sep 2021 07:51:17 +0000 (09:51 +0200)]
panvk: Fix panvk_pipeline_builder_upload_sysval()
Call panvk_sysval_upload_viewport_offset() instead of
panvk_sysval_upload_viewport_scale() in the PAN_SYSVAL_VIEWPORT_OFFSET
case.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 16 Sep 2021 10:51:46 +0000 (12:51 +0200)]
panvk: Fix the pipeline binding logic
Right now, only one pipeline can be bound at any given time, instead of
one per bind-point. Fix the code so we can support compute operations.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 23 Sep 2021 15:36:45 +0000 (17:36 +0200)]
panvk: Don't invalidate the vertex attributes when binding a new pipeline
This should be done when binding new vertex buffers.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 16 Sep 2021 10:36:53 +0000 (12:36 +0200)]
panvk: Use the local batch variable when we have one
s/cmdbuf->state.batch->/batch->/ when the batch variable exists.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 16 Sep 2021 10:23:32 +0000 (12:23 +0200)]
panvk: Make panvk_cmd_open_batch() return the new batch
So we can get replace the
panvk_cmd_open_batch();
batch = cmdbuf->state.batch;
sequence by
batch = panvk_cmd_open_batch();
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 16 Sep 2021 10:13:44 +0000 (12:13 +0200)]
panvk: Extend panvk_cmd_close_batch() to handle current_batch == NULL
This way callers don't have to check it.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 16 Sep 2021 09:42:28 +0000 (11:42 +0200)]
panvk: Fix TLS initialization for multi-draw batches
If we queue multiple draws to the same batch, the TLS size should be
adjusted to cover the maximum TLS size requirement, not just the one
of the pipeline bound when the batch is closed. This requires keeping
TLS info attached to the batch and updating it every time a draw is
issued.
While at it, get rid of the wg_count state: we'll let vkCmdDispatch()
calculate the total WLS size.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Wed, 15 Sep 2021 07:03:26 +0000 (09:03 +0200)]
panvk: Fix the static scissor/viewport case
Even if we can build a static viewport descriptor, we will need the
static scissor/viewport data to fill the viewport sysvals.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Wed, 15 Sep 2021 06:59:16 +0000 (08:59 +0200)]
panvk: Always allocate at least one BLEND descriptor for fragment shaders
Even there's no render target.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Samuel Pitoiset [Mon, 27 Sep 2021 12:35:54 +0000 (14:35 +0200)]
radv: remove vs_common_out:export_prim_id
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13062>
Samuel Pitoiset [Mon, 27 Sep 2021 12:21:33 +0000 (14:21 +0200)]
radv: remove unnecessary init of outinfo.export_prim_id for GS
When a geometry shader is present, not writing the gl_PrimitiveID is
undefined, so this is unnecessary. Note that this was never reached
on <= GFX8 because vs_common_out.export_prim_id from the GS key was
always FALSE.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13062>
Samuel Pitoiset [Mon, 27 Sep 2021 11:32:49 +0000 (13:32 +0200)]
radv: remove unnecessary radv_shader_info:{vs,tes}.export_prim_id
Use the VS outputinfo struct instead.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13062>
Lionel Landwerlin [Tue, 28 Sep 2021 11:33:08 +0000 (14:33 +0300)]
microsoft/clc: drop LLVM dependency to version < 12
Prior to LLVM 12, SmallVector requires 2 template arguments.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes:
c4755a7c32e66c ("microsoft/clc: Support SPIR intermediates in the compilation APIs")
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13083>
Samuel Pitoiset [Mon, 27 Sep 2021 10:05:51 +0000 (12:05 +0200)]
radv: remove unnecessary vs_common_out.export_layer_id
Same as the viewport index, the driver will emit 0 for the PS input
in this case.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13061>
Samuel Pitoiset [Mon, 27 Sep 2021 10:00:24 +0000 (12:00 +0200)]
radv: remove unnecessary vs_common_out.export_viewport_index
This was only used when the FS needs the viewport index if it's not
exported by the previous stage. Though, this is actually useless
because the driver will emit 0 for the PS input in this case.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13061>
Pierre-Eric Pelloux-Prayer [Fri, 24 Sep 2021 09:05:07 +0000 (11:05 +0200)]
radeonsi/test: add sanity checks
Verify that DISPLAY is there and deqp-runner is at least 0.9.
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13021>
Pierre-Eric Pelloux-Prayer [Fri, 24 Sep 2021 08:13:59 +0000 (10:13 +0200)]
radeonsi/test: add Raven expected results
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13021>
Pierre-Eric Pelloux-Prayer [Thu, 23 Sep 2021 10:00:02 +0000 (12:00 +0200)]
radeonsi/test: add --gpu to select the GPU to test
And specify DRI_PRIME + WAFFLE_GBM_DEVICE to avoid testing the wrong GPU.
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13021>
Pierre-Eric Pelloux-Prayer [Tue, 21 Sep 2021 16:44:16 +0000 (18:44 +0200)]
radeonsi/test: sanitize output_folder
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13021>
Pierre-Eric Pelloux-Prayer [Tue, 21 Sep 2021 16:37:09 +0000 (18:37 +0200)]
radeonsi/test: allow to specify a baseline folder
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13021>
Pierre-Eric Pelloux-Prayer [Tue, 21 Sep 2021 16:36:46 +0000 (18:36 +0200)]
radeonsi/test: print default values in help
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13021>
Rhys Perry [Mon, 6 Sep 2021 17:21:46 +0000 (18:21 +0100)]
radv: don't require a GS copy shader to use the cache with NGG VS+GS
Fixes dEQP-VK.pipeline.cache.no_cache_control.readwrite_cache.pipeline_from_get_data.vertex_stage_geometry_stage_fragment_stage
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Fixes:
7e664a53835 ("radv: Don't generate GS copy shader when the pipeline has NGG.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12741>
Samuel Pitoiset [Mon, 27 Sep 2021 17:26:40 +0000 (19:26 +0200)]
radv: remove unused radv_nir_compiler_options fields
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13067>
Samuel Pitoiset [Mon, 27 Sep 2021 17:19:36 +0000 (19:19 +0200)]
radv: cleanup uses of VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT
Use the pipeline key instead of this mess.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13067>
Timothy Arceri [Fri, 17 Sep 2021 14:51:25 +0000 (00:51 +1000)]
util/cache: test simple cache put and get between instances
To make sure we are not just using the in-memory cache index for
the single file cache, we test adding and retriving cache items
between two different cache instances.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12925>
Ella-0 [Sat, 25 Sep 2021 15:51:16 +0000 (15:51 +0000)]
v3d: add R10G10B10X2_UNORM to format table
Fixes following piglit fails:
spec@ext_framebuffer_object@fbo-blending-formats
spec@ext_framebuffer_object@fbo-blending-formats@GL_RGB10
Cc: mesa-stable
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13051>
Roland Scheidegger [Fri, 24 Sep 2021 15:57:05 +0000 (17:57 +0200)]
lavapipe: Fix crashes with transform feedback when using VK_WHOLE_SIZE
llvmpipe expects valid size parameter, and when just VK_WHOLE_SIZE is
passed very bad things can happen.
This was handled specially before, but got dropped when lavapipe was
converted to use the generated command queue.
Fixes:
eb7eccc76f0a ("lavapipe: Use generated command queue code")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13036>
Mike Blumenkrantz [Fri, 17 Sep 2021 20:15:00 +0000 (16:15 -0400)]
anv: assert that legacy_scanout isn't used with explicit modifiers
these should be mutually exclusive
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12919>
Caio Marcelo de Oliveira Filho [Fri, 24 Sep 2021 05:59:40 +0000 (22:59 -0700)]
iris: Document push constants allocation
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13014>
Caio Marcelo de Oliveira Filho [Fri, 24 Sep 2021 05:59:40 +0000 (22:59 -0700)]
intel: Add and use max_constant_urb_size_kb
This knowledge was repeated in multiple places so move the values to
intel_device_info struct.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13014>
Lionel Landwerlin [Mon, 27 Sep 2021 15:00:03 +0000 (18:00 +0300)]
spirv: don't bother initializing variables to Undef
If an OpVariable's initializer is undef, there is no need to
initialize the variable.
v2: Comment the code (Caio)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13030>
Lionel Landwerlin [Fri, 24 Sep 2021 12:19:50 +0000 (15:19 +0300)]
spirv: workaround LLVM-SPIRV Undef variable initializers
The LLVM-SPIRV translator creates variables with initializers, but
most of those are actually undef initializers. We can just skip
composites that are entirely made of undefs, but for partially undefs,
we will still zero initialize.
v2: Rename wa_llvm_spirv_undef_initializer to wa_llvm_spirv_ignore_workgroup_initializer (Caio)
Limit workaround to OpenCL (Caio)
Make workaround clearer (Caio)
v3: Only apply workaround on workgroup storage (Caio)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13030>
Lionel Landwerlin [Fri, 24 Sep 2021 12:16:44 +0000 (15:16 +0300)]
spirv: avoid shadowing local variable
v2: rename s/eval/elem_val/ (Caio)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13030>
Jesse Natalie [Sun, 26 Sep 2021 17:46:04 +0000 (10:46 -0700)]
clover: Rename module -> binary, because C++20 makes module a keyword
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12273>
Jesse Natalie [Sun, 8 Aug 2021 15:59:58 +0000 (08:59 -0700)]
clover: Delete unused 'e' exception reference vars
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12273>
Jesse Natalie [Sun, 26 Sep 2021 18:03:56 +0000 (11:03 -0700)]
clover: std::result_of is deprecated in c++17 and removed in c++20
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12273>
Emma Anholt [Sat, 25 Sep 2021 22:42:06 +0000 (15:42 -0700)]
i915g: Use the non-vbuf code path by default to fix index overflows.
We were assertion failing on some large draws due to indices >16bits,
despite asking draw to limit the max indices. I haven't managed to track
it down, so flip us back to the older, non-index drawing path that doesn't
hit this bug until it can get fixed. Leave an I915_DEBUG=vbuf flag around
so we can look into this later.
This is a pretty big performance hit for vertex shaders. Using glmark2 -b
build:use-vbo=true:
i915g-vbuf: 211 fps
i915g-nonvbuf: 185 fps
i915c: 41 fps
Given how massively better i915g still is than i915c (llvmpipe VS instead
of the classic swrast interpreter), I think it's still worth it to get
i915g correct before we fix this perf regression.
Fixes: #4971
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13052>
Emma Anholt [Wed, 16 Jun 2021 04:52:04 +0000 (21:52 -0700)]
i915g: Unifdef VBUF_MAP_BUFFER.
You do want to stream the vertices out to the WC mapping, as the code has
been doing, rather than writing into malloc and doing a memcpy later and
wasting cache space.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13052>
Emma Anholt [Wed, 16 Jun 2021 04:49:03 +0000 (21:49 -0700)]
i915g: Remove dead VBUF_USE_POOL code.
Not defined anywhere, and the members it's setting up don't exist.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13052>