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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Marek Olšák [Wed, 11 Nov 2020 02:30:52 +0000 (21:30 -0500)]
ac: fix min/max_good_num_cu_per_sa on gfx10.3 with disabled SEs
Fixes:
9538b9a68ed - radeonsi: add support for Sienna Cichlid
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7542>
Marek Olšák [Tue, 10 Nov 2020 23:43:12 +0000 (18:43 -0500)]
ac: fix detection of Pro graphics
Fixes:
bfb928759 "ac: add radeon_info::is_pro_graphics"
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7542>
Marek Olšák [Tue, 10 Nov 2020 13:53:02 +0000 (08:53 -0500)]
ac: add build_alloca with an initializer
combining alloca_undef + BuildStore.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7542>
Marek Olšák [Tue, 10 Nov 2020 23:48:22 +0000 (18:48 -0500)]
radeonsi: add options.inline_uniforms to the shader cache key
It affects how shaders are finalized before caching.
Fixes:
b7501184b90 ("radeonsi: implement inlinable uniforms")
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7542>
Marek Olšák [Wed, 21 Oct 2020 17:00:41 +0000 (13:00 -0400)]
radeonsi: remove VS input loads when culling with rasterizer discard
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7542>
Marek Olšák [Wed, 21 Oct 2020 16:34:51 +0000 (12:34 -0400)]
radeonsi: tweak triangle list culling performance for GS fast launch
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7542>
Marek Olšák [Sat, 17 Oct 2020 02:07:09 +0000 (22:07 -0400)]
radeonsi: read vs_state_bits in vs_prolog correctly
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7542>
Marek Olšák [Wed, 21 Oct 2020 18:39:26 +0000 (14:39 -0400)]
radeonsi: don't subtract max_verts_per_prim from hw_max_esverts on gfx10.3
gfx10.3 does it properly. This change enables the last 2 lanes in a workgroup
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/7542>
Marek Olšák [Tue, 10 Nov 2020 13:20:21 +0000 (08:20 -0500)]
radeonsi: determine correctly if switching from normal launch to fast launch
Fixes:
3da91b3327f - radeonsi/ngg: add VGT_FLUSH when enabling fast launch
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7542>
Marek Olšák [Fri, 16 Oct 2020 15:37:16 +0000 (11:37 -0400)]
radeonsi: only do VGT_FLUSH for fast launch if previous draw was normal launch
Fixes:
3da91b3327f - radeonsi/ngg: add VGT_FLUSH when enabling fast launch
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7542>
Marek Olšák [Mon, 9 Nov 2020 22:54:44 +0000 (17:54 -0500)]
radeonsi: do VGT_FLUSH when switching NGG -> legacy on Sienna Cichlid
Other chips don't need this.
Fixes:
9538b9a68ed - radeonsi: add support for Sienna Cichlid
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7542>
Marek Olšák [Tue, 10 Nov 2020 14:20:50 +0000 (09:20 -0500)]
radeonsi: fix min_direct_count value
It was always 0.
Fixes:
0ce68852c "radeonsi: implement multi_draw but supporting only 1 draw"
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7542>
Jason Ekstrand [Wed, 18 Nov 2020 05:22:58 +0000 (23:22 -0600)]
Revert "anv/image: Define anv_image_get_aux_addr (v3)"
This reverts commit
87dc3106b077199b829a082e32ec33d0c6d400ab.
Fixes:
87dc3106b077 "anv/image: Define anv_image_get_aux_addr (v3)"
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3826
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7670>
Jason Ekstrand [Tue, 17 Nov 2020 23:45:22 +0000 (17:45 -0600)]
nir: Rewrite lower_undef_to_zero
This both fixes its metadata handling (it was flagging dirty regardless
of progress) and reduces the entire pass to 21 LOC including whitespace
by making better use of helpers.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7565>
Jesse Natalie [Fri, 6 Nov 2020 16:09:30 +0000 (17:09 +0100)]
microsoft: Add CLC frontend and kernel/compute support to DXIL converter
This adds a standalone library which can convert through the pipeline of
OpenCL C -> SPIR -> SPIR-V -> NIR -> DXIL. It can add in the libclc
implementations of various library functions in the NIR phase, and
also massages the NIR to shift it more towards graphics-style compute.
This is leveraged by the out-of-tree OpenCLOn12 runtime
(https://github.com/microsoft/OpenCLOn12).
This is the combination of a lot of commits from our development branch,
containing code by several authors.
Co-authored-by: Boris Brezillon <boris.brezillon@collabora.com>
Co-authored-by: Daniel Stone <daniels@collabora.com>
Co-authored-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7565>
Jesse Natalie [Fri, 13 Nov 2020 23:08:10 +0000 (15:08 -0800)]
spirv: Allow spirv_to_nir callers to provide a float execution mode
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7565>
Jesse Natalie [Thu, 12 Nov 2020 17:52:11 +0000 (09:52 -0800)]
nir_load_libclc: Mark libclc shader as internal
This allows NIR_PRINT to skip passes run on it.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7565>
Boris Brezillon [Thu, 14 May 2020 11:18:33 +0000 (13:18 +0200)]
nir: Make nir_build_deref_offset() support ptr_as_array
nir_build_deref_offset() can be extended to support calculating an
offset relative to a base pointer.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7565>
Jesse Natalie [Wed, 11 Nov 2020 22:24:02 +0000 (14:24 -0800)]
vtn/opencl: Fix alignment for half vload/vstore
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7565>
Jesse Natalie [Thu, 20 Aug 2020 17:20:57 +0000 (10:20 -0700)]
nir: Add nir_alu_type -> glsl_base_type conversion helper
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7565>
Boris Brezillon [Tue, 14 Apr 2020 08:56:20 +0000 (01:56 -0700)]
compiler/spirv: Handle the LocalSizeHint execution modes
It's basically the same as the LocalSize version except it fills
the local_size_hint array.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7565>
Boris Brezillon [Thu, 16 Jul 2020 13:37:41 +0000 (15:37 +0200)]
nir: Fix nextafter() for hardware that don't support denorms
We need to make sure we never return a denorm float, either by flushing
the denorm to 0 or by adjusting the minimum non-zero value.
v2 (Rhys): Use shader float controls execution mode instead of a dedicated option
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7565>
Jesse Natalie [Tue, 2 Jun 2020 15:30:35 +0000 (08:30 -0700)]
panfrost/util: Move nir_undef_to_zero into core nir and add 'lower'
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7565>
Jason Ekstrand [Tue, 3 Nov 2020 17:34:18 +0000 (11:34 -0600)]
nir,clover: Drop nir_lower_mem_constant_vars
We have a more generic helper now so clover doesn't need quite as many
special paths.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7565>
Jason Ekstrand [Tue, 3 Nov 2020 17:33:19 +0000 (11:33 -0600)]
nir: Add a more generic helper for gathering constant initializers
The one we had was tied to nir_var_mem_constant but we also need it for
global and, one day, I can imagine us needing it for shared (though
there's currently no spec that requires it).
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7565>
Jason Ekstrand [Tue, 3 Nov 2020 17:07:07 +0000 (11:07 -0600)]
nir/lower_io: Add data OOB asserts to write_constant
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7565>
Vinson Lee [Wed, 11 Nov 2020 22:08:48 +0000 (14:08 -0800)]
microsoft/compiler: Add scope for declaration in case statement.
This patch fixes this build error.
../src/microsoft/compiler/dxil_nir.c: In function 'extract_comps_from_vec32':
../src/microsoft/compiler/dxil_nir.c:52:10: error: a label can only be part of a statement and a declaration is not a statement
52 | unsigned dst_offs = i * comps_per32b;
| ^~~~~~~~
Fixes:
b9c61379ab4 ("microsoft/compiler: translate nir to dxil")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7563>
Vinson Lee [Wed, 11 Nov 2020 21:27:05 +0000 (13:27 -0800)]
microsoft/compiler: Add struct glsl_type forward declaration.
This patch fixes this build error.
In file included from ../src/microsoft/compiler/dxil_enums.c:24:
../src/microsoft/compiler/dxil_enums.h:323:58: warning: 'struct glsl_type' declared inside parameter list will not be visible outside of this definition or declaration
323 | enum dxil_component_type dxil_get_comp_type(const struct glsl_type *type);
| ^~~~~~~~~
../src/microsoft/compiler/dxil_enums.h:325:71: warning: 'struct glsl_type' declared inside parameter list will not be visible outside of this definition or declaration
325 | enum dxil_prog_sig_comp_type dxil_get_prog_sig_comp_type(const struct glsl_type *type);
| ^~~~~~~~~
../src/microsoft/compiler/dxil_enums.h:327:61: warning: 'struct glsl_type' declared inside parameter list will not be visible outside of this definition or declaration
327 | enum dxil_resource_kind dxil_get_resource_kind(const struct glsl_type *type);
| ^~~~~~~~~
../src/microsoft/compiler/dxil_enums.c:31:30: error: conflicting types for 'dxil_get_prog_sig_comp_type'
31 | enum dxil_prog_sig_comp_type dxil_get_prog_sig_comp_type(const struct glsl_type *type)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/microsoft/compiler/dxil_enums.c:24:
../src/microsoft/compiler/dxil_enums.h:325:30: note: previous declaration of 'dxil_get_prog_sig_comp_type' was here
325 | enum dxil_prog_sig_comp_type dxil_get_prog_sig_comp_type(const struct glsl_type *type);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Fixes:
b9c61379ab4 ("microsoft/compiler: translate nir to dxil")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7562>
Vinson Lee [Wed, 11 Nov 2020 20:22:38 +0000 (12:22 -0800)]
microsoft/compiler: Add struct dxil_features forward declaration.
This patch fixes this build error.
In file included from ../src/microsoft/compiler/dxil_container.c:24:
../src/microsoft/compiler/dxil_container.h:98:42: warning: ‘struct dxil_features’ declared inside parameter list will not be visible outside of this definition or declaration
98 | const struct dxil_features *features);
| ^~~~~~~~~~~~~
../src/microsoft/compiler/dxil_container.c:72:1: error: conflicting types for ‘dxil_container_add_features’
72 | dxil_container_add_features(struct dxil_container *c,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/microsoft/compiler/dxil_container.c:24:
../src/microsoft/compiler/dxil_container.h:97:1: note: previous declaration of ‘dxil_container_add_features’ was here
97 | dxil_container_add_features(struct dxil_container *c,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Fixes:
b9c61379ab4 ("microsoft/compiler: translate nir to dxil")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7560>
Vinson Lee [Tue, 10 Nov 2020 03:48:04 +0000 (19:48 -0800)]
nv50/ir: Initialize GCRA members in constructor.
Fix defect reported by Coverity Scan.
Uninitialized pointer field (UNINIT_CTOR)
uninit_member: Non-static class member nodes is not initialized in this
constructor nor in any functions that it calls.
uninit_member: Non-static class member nodeCount is not initialized in
this constructor nor in any functions that it calls.
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7522>
Marek Olšák [Mon, 2 Nov 2020 11:11:43 +0000 (06:11 -0500)]
radeonsi: handle pipe_draw_info::increment_draw_id
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7441>
Marek Olšák [Mon, 2 Nov 2020 10:53:26 +0000 (05:53 -0500)]
radeonsi: swap DrawId and StartInstance SGPR locations
We need to change both values at the same time, so they need to be next
to each other.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7441>
Marek Olšák [Mon, 2 Nov 2020 10:53:58 +0000 (05:53 -0500)]
radeonsi: don't load DrawID for indirect draws if it's unused
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7441>
Marek Olšák [Sun, 1 Nov 2020 22:56:50 +0000 (17:56 -0500)]
mesa: don't FLUSH_VERTICES from primitive restart changes
It's now a draw state with no interactions with glBegin/End.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7441>
Marek Olšák [Sun, 1 Nov 2020 18:43:43 +0000 (13:43 -0500)]
mesa: add primitive restart state to Driver.Draw parameters
so that display lists don't have to disable it and drivers are simpler.
This will also enable unification with Gallium.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7441>
Marek Olšák [Sun, 1 Nov 2020 18:01:30 +0000 (13:01 -0500)]
mesa: index _RestartIndex with index_size_shift
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7441>
Marek Olšák [Sun, 1 Nov 2020 17:55:32 +0000 (12:55 -0500)]
mesa: move primitive restart enablement determination from st/mesa to main
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7441>
Marek Olšák [Sun, 1 Nov 2020 20:45:52 +0000 (15:45 -0500)]
mesa: remove constant drawID parameter from _mesa_draw_arrays
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7441>
Marek Olšák [Sun, 1 Nov 2020 17:40:54 +0000 (12:40 -0500)]
mesa: clean up GLboolean types in draw.c
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7441>
Marek Olšák [Sun, 1 Nov 2020 17:35:48 +0000 (12:35 -0500)]
mesa: clean up Driver.Draw parameter types
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7441>
Marek Olšák [Mon, 2 Nov 2020 08:26:25 +0000 (03:26 -0500)]
gallium/u_threaded: add support for multi draws
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7441>
Marek Olšák [Sun, 1 Nov 2020 16:44:04 +0000 (11:44 -0500)]
gallium/u_threaded: store start/count in min/max_index for better packing
This increases the maximum number of draws per batch from 192 to 256.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7441>
Marek Olšák [Sun, 1 Nov 2020 14:04:40 +0000 (09:04 -0500)]
gallium: extend draw_vbo to support multi draws
Essentially rename multi_draw to draw_vbo and remove start and count
from pipe_draw_info.
This is only an interface change. It doesn't add multi draw support
anywhere.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7441>
Marek Olšák [Sun, 1 Nov 2020 15:55:43 +0000 (10:55 -0500)]
gallium: add missing bits of the direct multi draw interface
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7441>
Marek Olšák [Sun, 1 Nov 2020 14:53:32 +0000 (09:53 -0500)]
gallium/u_threaded: improve draw merging by clearing pipe_draw_info fields
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7441>
Marek Olšák [Sun, 1 Nov 2020 12:14:22 +0000 (07:14 -0500)]
gallium: add pipe_draw_info::index_bounds_valid
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7441>
Marek Olšák [Sun, 1 Nov 2020 13:38:50 +0000 (08:38 -0500)]
gallium/u_threaded: clean up direct vs indirect draws
It's called draw_single because multi draws will use a different structure.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7441>
Marek Olšák [Tue, 3 Nov 2020 15:52:18 +0000 (10:52 -0500)]
gallium/u_threaded: lift DIV_ROUND_UP to eliminate it for constant expressions
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7441>
Marek Olšák [Sun, 1 Nov 2020 11:38:32 +0000 (06:38 -0500)]
gallium: make pipe_draw_indirect_info * a draw_vbo parameter
This removes 8 bytes from pipe_draw_info (think u_threaded_context)
and a lot of info->indirect pointer indirections.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7441>
Marek Olšák [Fri, 30 Oct 2020 13:53:50 +0000 (09:53 -0400)]
gallium: move count_from_stream_output into pipe_draw_indirect_info
This removes some overhead from tc_draw_vbo and increases the maximum number
of draws per batch from 153 to 192 in u_threaded_context.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7441>
Marek Olšák [Fri, 30 Oct 2020 13:50:50 +0000 (09:50 -0400)]
mesa: add Driver.DrawTransformFeedback
to remove some overhead from Driver.Draw.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7441>
Alejandro Piñeiro [Fri, 13 Nov 2020 10:20:08 +0000 (11:20 +0100)]
turnip: minor tu_queue fixes related to vk_base_object
Include:
* Missing call to tu_queue_finish
* Use the proper free method for device->queues
Fixes
5d3fdbc52bf8bee6f0acfd55c87b8d280908b559
Tested-by: Hyunjun Ko <zzoon@igalia.com>
Reviewed-by: Hyunjun Ko <zzoon@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7663>
Eric Anholt [Tue, 17 Nov 2020 21:19:36 +0000 (13:19 -0800)]
turnip: Assert about the storage buffer offset alignment.
Giving us an unaligned pointer is invalid, and this helps switch a CTS bug
from being a flake to a consistent crash.
https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/2661
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7662>
Michel Zou [Mon, 16 Nov 2020 19:07:06 +0000 (20:07 +0100)]
libgl-gdi: add zink support
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Acked-by: Jose Fonseca <jfonseca@vmware.com>
Closes #3802
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7643>
Michel Zou [Tue, 17 Nov 2020 08:29:54 +0000 (09:29 +0100)]
zink: fix unused variable warning
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7643>