Pierre-Eric Pelloux-Prayer [Fri, 22 May 2020 16:38:24 +0000 (18:38 +0200)]
radeonsi/drirc: enable zerovram option for 7 Days to Die
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2686
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5168>
Jonathan Marek [Tue, 12 May 2020 23:51:29 +0000 (19:51 -0400)]
turnip: support VkImageDrmFormatModifierExplicitCreateInfoEXT
This will be used to import images which have different layout from what
turnip uses by default. For example non-UBWC (linear) images from the video
decoder on some hardware have a 512 pitch alignment.
Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4596>
Jonathan Marek [Tue, 12 May 2020 23:38:48 +0000 (19:38 -0400)]
freedreno/layout: add explicit offset/pitch argument to fdl6_layout
fdl6_layout will return false when the explicit pitch is not valid.
Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4596>
Timothy Arceri [Thu, 21 May 2020 03:12:34 +0000 (13:12 +1000)]
glsl: fix slow linking of uniforms in the nir linker
Currently the nir linker resizes the amount of storage needed to hold
uniform information on the fly while linking. As shaders can contain
thousands of uniforms this can be very slow. For example some Godot
shaders can take 30 seconds to compile on some machines.
In this change we count the amount of storage needed before we start
processing the uniforms. This is what the GLSL IR linker does also.
Fixes: 95f555a93a88 ("st/glsl_to_nir: make use of nir linker for linking uniforms")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2996
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5137>
Timothy Arceri [Tue, 26 May 2020 02:14:13 +0000 (12:14 +1000)]
glsl: stop cascading errors if process_parameters() fails
Generally we do not completely stop compilation as soon as we see an error,
instead we continue on to attemp to find any futher errors.
This means we shouldn't be checking state->error to see if any error has
happened during the compilation process, doing so was causing
process_parameters() to fail on completely valid functions if there was
any error found in the shader previously. This then caused the valid
functions not to be found because the paramlist was considered empty,
resulting in the compiler spewing out misleading error messages.
Here we simply add the IR error value to the param list when we have
an issue with processing a parameter, this leads to much better error
messaging.
Fixes: 53e4159eaaf6 ("glsl: stop processing function parameters if error happened")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5205>
Vinson Lee [Tue, 26 May 2020 23:09:03 +0000 (16:09 -0700)]
freedreno: Add missing va_end.
Fix warning reported by Coverity Scan.
Missing varargs init or cleanup (VARARGS)
missing_va_end: va_end was not called for ap.
Fixes: a0ca1462f317 ("freedreno: add logging infrastructure")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5221>
Jason Ekstrand [Tue, 26 May 2020 20:58:56 +0000 (15:58 -0500)]
nir: Fix sources for image atomic fadd
Somehow we ended up with an extra scalar source up-front. It doesn't
look like any drivers use this opcode yet so no real harm has been done
by it being wrong.
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5218>
Alyssa Rosenzweig [Fri, 22 May 2020 18:56:49 +0000 (14:56 -0400)]
pan/decode: Dump unknown2
Looks to be 0.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5219>
Alyssa Rosenzweig [Fri, 22 May 2020 18:53:27 +0000 (14:53 -0400)]
pan/decode: Dump missing field on Bifrost
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5219>
Alyssa Rosenzweig [Tue, 26 May 2020 22:10:39 +0000 (18:10 -0400)]
pan/decode: Fix tiler warning
../src/panfrost/pandecode/decode.c:1176:60: warning: taking address of
packed member of ‘struct mali_framebuffer’ may result in an unaligned
pointer value [-Waddress-of-packed-member]
1176 |
pandecode_midgard_tiler_descriptor(&fb->tiler, fb->width1 + 1,
fb->height1 + 1, is_fragment, true);
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5219>
Alyssa Rosenzweig [Tue, 26 May 2020 22:03:26 +0000 (18:03 -0400)]
pan/decode: Fix unused variable warning
Check unused for now.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5219>
Alyssa Rosenzweig [Tue, 19 May 2020 15:14:21 +0000 (11:14 -0400)]
nouveau: Use SATURATE
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5100>
Alyssa Rosenzweig [Tue, 19 May 2020 15:11:07 +0000 (11:11 -0400)]
etnaviv: Use SATURATE
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5100>
Alyssa Rosenzweig [Tue, 19 May 2020 15:11:17 +0000 (11:11 -0400)]
iris: Use SATURATE
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5100>
Alyssa Rosenzweig [Tue, 19 May 2020 15:11:41 +0000 (11:11 -0400)]
i965: Use SATURATE
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5100>
Alyssa Rosenzweig [Tue, 19 May 2020 15:09:41 +0000 (11:09 -0400)]
intel: Use SATURATE
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5100>
Alyssa Rosenzweig [Tue, 19 May 2020 15:11:25 +0000 (11:11 -0400)]
softpipe: Use SATURATE
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5100>
Alyssa Rosenzweig [Tue, 19 May 2020 15:02:09 +0000 (11:02 -0400)]
panfrost: Use SATURATE
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5100>
Alyssa Rosenzweig [Tue, 19 May 2020 15:14:12 +0000 (11:14 -0400)]
glsl: Use SATURATE
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5100>
Alyssa Rosenzweig [Tue, 19 May 2020 15:10:56 +0000 (11:10 -0400)]
gallium/draw: Use SATURATE
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5100>
Alyssa Rosenzweig [Tue, 19 May 2020 15:09:02 +0000 (11:09 -0400)]
mesa/swrast: Use SATURATE
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5100>
Alyssa Rosenzweig [Tue, 19 May 2020 15:08:51 +0000 (11:08 -0400)]
mesa: Use SATURATE
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5100>
Alyssa Rosenzweig [Tue, 19 May 2020 15:14:52 +0000 (11:14 -0400)]
util/format: Use SATURATE
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5100>
Alyssa Rosenzweig [Thu, 14 May 2020 16:34:35 +0000 (12:34 -0400)]
util: Add SATURATE macro
Equivalent to clamp(x, 0.0, 1.0) or fsat in NIR. Useful for format
packing, among other uses given the variety of substituions in-tree.
v2: Drop brackets (Eric).
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5100>
Caio Marcelo de Oliveira Filho [Tue, 19 May 2020 21:30:01 +0000 (14:30 -0700)]
intel/fs: Remove redundant assert()
This is covered by the two previous similar asserts. Each time `v` is
assigned this is asserted.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5213>
Caio Marcelo de Oliveira Filho [Tue, 19 May 2020 16:44:55 +0000 (09:44 -0700)]
intel/fs: Early return when can't satisfy explicit group size
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5213>
Caio Marcelo de Oliveira Filho [Wed, 20 May 2020 09:37:49 +0000 (02:37 -0700)]
intel/fs: Remove unused state from brw_nir_lower_cs_intrinsics
After
2663759af0e ("intel/fs: Add and use a new load_simd_width_intel
intrinsic") the local_workgroup_size is not used anymore except for
assertions at the pass' start, so drop it from state struct.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5213>
Caio Marcelo de Oliveira Filho [Thu, 21 May 2020 08:03:57 +0000 (01:03 -0700)]
intel/fs: Remove unused emission of load_simd_with_intel
The nir_intrinsic_load_simd_width_intel is always lowered by the
brw_nir_lower_simd() pass before the emission happens. This is likely
a "leftover" from patch rewriting/squashing that happened when this
intrinsic was added.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5213>
Kristian H. Kristensen [Fri, 22 May 2020 21:56:08 +0000 (14:56 -0700)]
egl/android: Drop unused variable
src/egl/drivers/dri2/platform_android.c:332:29: warning: unused
variable 'dri2_dpy' [-Wunused-variable]
Reviewed-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5174>
Kristian H. Kristensen [Fri, 22 May 2020 21:55:29 +0000 (14:55 -0700)]
egl/android: Move get_format under HAVE_DRM_GRALLOC guard where it's used
src/egl/drivers/dri2/platform_android.c:159:12: warning: unused
function 'get_format' [-Wunused-function]
Reviewed-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5174>
Kristian H. Kristensen [Fri, 22 May 2020 21:47:30 +0000 (14:47 -0700)]
mesa/st: Use memset to zero out struct
This is a non-stop source of warnings and build breakage. memset works
everywhere.
src/mesa/state_tracker/st_tgsi_lower_depth_clamp.c:354:45: warning:
suggest braces around initialization of subobject [-Wmissing-braces]
Reviewed-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5174>
Kristian H. Kristensen [Fri, 22 May 2020 21:37:38 +0000 (14:37 -0700)]
mapi: Fix a couple of warning in generated code
safe_mul may not be used and clang doesn't understand the "optimize"
attribute.
src/mapi/glapi/gen/marshal_generated0.c:1216:16: warning: unknown
attribute 'optimize' ignored [-Wunknown-attributes]
src/mapi/glapi/gen/marshal_generated0.c:36:19: warning: unused
function 'safe_mul' [-Wunused-function]
Reviewed-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5174>
Kristian H. Kristensen [Fri, 22 May 2020 21:33:17 +0000 (14:33 -0700)]
src/util: Remove out-of-range comparison
Silence the warning about this always-true comparison.
src/util/softfloat.c:214:42: warning: comparison of constant 32768
with expression of type 'int16_t' (aka 'short') is always false
[-Wtautological-constant-out-of-range-compare]
} else if ((e > 0x1d) || (0x8000 <= m)) {
~~~~~~ ^ ~
Reviewed-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5174>
Kristian H. Kristensen [Fri, 22 May 2020 21:30:54 +0000 (14:30 -0700)]
freedreno/ir3: Avoid {0} initializer for struct reginfo
First element is not a scalar. Just initialize the struct like we do
elsewhere.
src/freedreno/ir3/disasm-a3xx.c:958:33: warning: suggest braces around
initialization of subobject [-Wmissing-braces]
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5174>
Kristian H. Kristensen [Fri, 22 May 2020 21:00:38 +0000 (14:00 -0700)]
turnip: Use {} initializer to silence warning
We're already using the {} syntax elsewhere in turnip.
src/freedreno/vulkan/tu_formats.c:828:71: warning: suggest braces
around initialization of subobject [-Wmissing-braces]
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5174>
Kristian H. Kristensen [Fri, 22 May 2020 20:57:53 +0000 (13:57 -0700)]
turnip: Use tu6_reduction_mode() to avoid warning
This makes it a little more explicit that the values line up.
src/freedreno/vulkan/tu_device.c:2209:75: warning: implicit conversion
from enumeration type 'const VkSamplerReductionMode' (aka 'const enum
VkSamplerReductionMode') to different enumeration type 'enum
a6xx_reduction_mode' [-Wenum-conversion]
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5174>
Kristian H. Kristensen [Fri, 22 May 2020 20:56:13 +0000 (13:56 -0700)]
turnip: Use hw enum when emitting A6XX_RB_STENCIL_CONTROL
We're hard-coding this value, so let's use the hw enum and avoid a
warning.
src/freedreno/vulkan/tu_clear_blit.c:2091:19: warning: implicit
conversion from enumeration type 'enum VkStencilOp' to different
enumeration type 'enum adreno_stencil_op' [-Wenum-conversion]
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5174>
Rob Clark [Sat, 23 May 2020 19:42:00 +0000 (12:42 -0700)]
freedreno/gmem: split out helper to calc # of bins
Gets the `nbins_x`/`y` local vars out of the main layout function,
to prevent any confusion like what was fixed in the previous patch
from sneaking back in.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5189>
Rob Clark [Sat, 23 May 2020 19:27:17 +0000 (12:27 -0700)]
freedreno/gmem: fix nbins_x/y mismatch
`layout_gmem()` recalculates the # of bins in x/y dimensions after
aligning the bin width/height to required dimensions. Because of this,
the resulting gmem config could have fewer bins in either dimension.
But the tile/bin layout and the pipe assignment logic were still using
the original values. Which could result in extraneous bins with a
width and/or height of zero.
Because the gmem rendering code uses `gmem->bin_w`/`h` to determine
the number of bins, this could result in some zero size bins being
executed, while later valid bins are skipped. Which can leave un-
rendered portions of the screen (generally lower-right).
To fix this, be sure to use `gmem->bin_w`/`h` rather than the local
variables.
Fixes: 1bd38746d5a ("freedreno/gmem: rework gmem layout algo")
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5189>
Rob Clark [Sat, 23 May 2020 19:21:20 +0000 (12:21 -0700)]
freedreno/gmem: add some asserts
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5189>
Rob Clark [Sat, 23 May 2020 19:03:14 +0000 (12:03 -0700)]
freedreno/gmemtool: add verbose mode
And real getopt arg parsing.. now that we have one.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5189>
Rob Clark [Sat, 23 May 2020 18:52:29 +0000 (11:52 -0700)]
freedreno/gmemtool: add a405
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5189>
Rob Clark [Sat, 23 May 2020 18:50:14 +0000 (11:50 -0700)]
freedreno/gmemtool: make GMEM alignment per-gen
`gmem_page_align` is generation specific (with the exception of a2xx
which has a different value for fast-clear). So we should override the
value from the captured gmem_key according to the gpu we are emulating
for the purposes of calculating gmem config.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5189>
Rob Clark [Fri, 22 May 2020 19:28:38 +0000 (12:28 -0700)]
freedreno/gmem: make noscis debug actually do something on a6xx
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5188>
Rob Clark [Sat, 23 May 2020 17:56:56 +0000 (10:56 -0700)]
freedreno: handle PIPE_TRANSFER_MAP_DIRECTLY
Just something I noticed in the process of debugging the issue fixed in
the previous commit.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5188>
Rob Clark [Sat, 23 May 2020 17:52:52 +0000 (10:52 -0700)]
freedreno: clear last_fence after resource tracking
The resource tracking in the clear/draw_vbo/blit paths could itself
trigger a flush. Which would update last_fence. So we need to clear
last_fence *after* all the dependency tracking.
Fixes: ddb7fadaf8b ("freedreno: avoid no-op flushes by re-using last-fence")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2992
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5188>
Rob Clark [Sat, 23 May 2020 18:00:40 +0000 (11:00 -0700)]
freedreno: add batch debugging
Something I cooked up in the process of debugging the issue fixed in the
next commit. Might come in useful again in the future.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5188>
Rhys Perry [Tue, 26 May 2020 17:08:17 +0000 (18:08 +0100)]
nir: fix lowering to scratch with boolean access
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Fixes: 18ed82b084c79bf63666f2da22e5d675fb01aa26
('nir: Add a pass for selectively lowering variables to scratch space')
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5214>
Kristian H. Kristensen [Fri, 22 May 2020 20:36:38 +0000 (13:36 -0700)]
freedreno: Use explicit *_NONE enum for undefined formats
This adds RB, VFMT and TFMT NONE values for a3xx-a5xx and FMT6_NONE
for a6xx. Use those values instead of open coded (enum xxx) ~0 or
sometimes even ~0, which triggers out-of-enum range warnings.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5173>
Eric Anholt [Tue, 21 Jan 2020 22:36:32 +0000 (14:36 -0800)]
freedreno/ir3: Use RESINFO for a6xx image size queries.
The closed GL driver uses resinfo on images with the writeonly flag (using
the texture-path's getsize only for readonly images). The closed vulkan
driver seems to use resinfo regardless. Using resinfo doesn't need any
fixups after the instruction. It also avoids one of the needs for the
TEX_CONST state for the image, which is awkward to set up in the GL
driver.
The new handler goes into ir3_a6xx to be next to the other current image
code, but the a4xx version is left in place because it wants a bunch of
sampler helpers.
Fixes assertion failure in dEQP-VK.image.image_size.buffer.readonly_32.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3501>
Eric Anholt [Wed, 20 May 2020 21:00:33 +0000 (14:00 -0700)]
freedreno/ir3: Move handle_bindless_cat6 to compiler_nir and reuse.
There was an open coded version for ldc, and now we can drop that. I
needed to do it for resinfo as well.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3501>
Eric Anholt [Wed, 20 May 2020 20:40:29 +0000 (13:40 -0700)]
freedreno/ir3: Refactor out IBO source references.
All the users of the unsigned result just wanted an ir3_instruction to
reference. Move a6xx's helpers to ir3_image.c and inline the old unsigned
results version.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3501>
Eric Anholt [Wed, 20 May 2020 22:29:14 +0000 (15:29 -0700)]
freedreno: Set the immediate flag in a4/a5xx resinfos.
Noticed comparing our RESINFO asm to qcom's for the same test, and if I
drop this bit their disasm switches from immediate to reg. ldgb seems to
have the same behavior.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3501>
Eric Anholt [Wed, 20 May 2020 20:25:32 +0000 (13:25 -0700)]
freedreno: Fix resinfo asm, which doesn't have srcs besides IBO number.
In the process, clarify what's going on with the LDC/LDIB case.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3501>
Eric Anholt [Wed, 20 May 2020 20:21:44 +0000 (13:21 -0700)]
freedreno: Add more resinfo/ldgb testcases.
Since I'm going to start using the resinfo opcode, make sure we can disasm
the blob's instances of it that I've found. And, since resinfo disasm
will impact ldgb on pre-a6xx, include some of those too.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3501>
Eric Anholt [Wed, 20 May 2020 20:16:41 +0000 (13:16 -0700)]
freedreno: Fix printing of unused src in disasm of cat6 RESINFO.
Compare to QC's disasm right next to ours, and we clearly had an extra src
that wouldn't make sense.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3501>
Eric Anholt [Tue, 21 Jan 2020 23:16:56 +0000 (15:16 -0800)]
freedreno/a6xx: Fix the size of buffer image views.
We were using the size of the underlying buffer (in R8 elements), while we
need to be using the size of the image view (which may be a subset of the
underlying buffer, and may be in a different format from R8).
This fix means less dereferencing off of the end of shader image views for
buffer images, but more importantly is needed to get the right answer from
resinfo if we are to switch to that.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3501>
Connor Abbott [Tue, 19 May 2020 15:37:26 +0000 (17:37 +0200)]
tu: Add missing storage image/texel buffer bits
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5122>
Connor Abbott [Wed, 20 May 2020 12:41:48 +0000 (14:41 +0200)]
tu: Respect VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
This came up with some image tests that are enabled by the next commit.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5122>
Connor Abbott [Wed, 20 May 2020 09:24:28 +0000 (11:24 +0200)]
tu: Fix IBO descriptor for cubes
They act the same as 2D arrays when used as storage images, and we're
supposed to override the IBO descriptor to reflect this.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5122>
Marcin Ślusarz [Wed, 20 May 2020 19:30:29 +0000 (21:30 +0200)]
glsl: cleanup vertex shader input checks
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5133>
Marcin Ślusarz [Wed, 20 May 2020 19:29:15 +0000 (21:29 +0200)]
glsl_to_tgsi: add fallthrough comments
All those cases are supposed to hit an assert in ir_binop_bit_or case.
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5133>
Marek Olšák [Fri, 22 May 2020 12:30:31 +0000 (08:30 -0400)]
radeonsi/gfx10: implement most performance counters
PAL has all of them.
GE perf counters don't work - no idea why.
I only tested the few that I like to use.
There is no documentation, though most of the enums had already been
in the headers.
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5184>
Marek Olšák [Fri, 22 May 2020 12:05:25 +0000 (08:05 -0400)]
amd: replace SH -> SA (shader array) in comments
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5184>
Marek Olšák [Fri, 22 May 2020 12:04:07 +0000 (08:04 -0400)]
ac/gpu_info: replace num_good_cu_per_sh with min/max_good_cu_per_sa
Perf counters use the new max number.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5184>
Marek Olšák [Fri, 22 May 2020 10:09:39 +0000 (06:09 -0400)]
radeonsi: don't hardcode most perf counter block counts
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5184>
Erik Faye-Lund [Fri, 22 May 2020 10:37:37 +0000 (12:37 +0200)]
docs/features: mark GL_ARB_texture_multisample as done for zink
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5159>
Erik Faye-Lund [Mon, 3 Feb 2020 16:41:18 +0000 (17:41 +0100)]
zink: expose PIPE_CAP_TEXTURE_MULTISAMPLE
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5159>
Erik Faye-Lund [Mon, 3 Feb 2020 16:39:37 +0000 (17:39 +0100)]
zink: implement nir_texop_txf_ms
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5159>
Gert Wollny [Sat, 23 May 2020 17:07:08 +0000 (19:07 +0200)]
r600/sfn: remove debug output leftover
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5187>
Gert Wollny [Sat, 23 May 2020 16:28:05 +0000 (18:28 +0200)]
r600/sfn: Correctly update the number of literals when forcing a new
group
When forcing a new instruction group by adding a ALU_OP_NOP, the
literals for the instruction that triggered this must be taken into
account for the next group, so update the number of literals
accordingly.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5187>
Gert Wollny [Sat, 23 May 2020 16:04:35 +0000 (18:04 +0200)]
r600/sfn: use modern c++ in printing LDS read instruction
Closes #3021
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5187>
Gert Wollny [Sat, 23 May 2020 15:55:50 +0000 (17:55 +0200)]
r600/sfn: Fix mapping for f32tof64 and f64tof32
We define the mapping based on the vector unit opcode.
Closes #3013
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5187>
Gert Wollny [Sat, 23 May 2020 15:43:50 +0000 (17:43 +0200)]
r600: Fix duplicated subexpression in r600_asm.c
Fixes: 4422ce1b04c117f61394a6834cd7933f06ce4e1f
r600: force new CF with TEX only if any texture value is written
Closes #3012
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5187>
Rob Clark [Tue, 19 May 2020 15:27:04 +0000 (08:27 -0700)]
freedreno/drm: disallow exported buffers in bo cache
Otherwise we can MADVISE(WONTNEED) a bo that someone else is still
using. We already handled that in the dma-buf and flink-name export
paths.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5204>
Vinson Lee [Mon, 25 May 2020 00:18:04 +0000 (17:18 -0700)]
r600/sfn: Use correct setter method.
Fix warning reported by Coverity Scan.
Useless call (USELESS_CALL)
side_effect_free: Calling v->pin_to_channel() is only useful for its
return value, which is ignored.
Fixes: 5d10e3ec6066 ("r600/nir: Pin interpolation results to channel")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5197>
Erik Faye-Lund [Thu, 21 May 2020 10:25:26 +0000 (12:25 +0200)]
zink: pass batch instead of context for queries
This makes things a bit more consistent IMO.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5141>
Erik Faye-Lund [Wed, 20 May 2020 12:48:02 +0000 (14:48 +0200)]
zink: do not dig into resource for nr_samples
The pipe_surface also know this, so no point in digging so deep.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5141>
Erik Faye-Lund [Wed, 20 May 2020 12:39:35 +0000 (14:39 +0200)]
zink: use samples from state
There's no reason to compute this, when it's already passed in.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5141>
Alyssa Rosenzweig [Wed, 13 May 2020 17:51:06 +0000 (13:51 -0400)]
nir: Add un/pack_32_4x8 opcodes
Complement the existing un/pack_32_2x16 opcodes. These are useful for
8-bit format packing. On Midgard, they are equivalent to just a 32-bit
move, but other GPUs could lower to other packs if needed.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5107>
Dmitriy Nester [Thu, 27 Feb 2020 13:42:21 +0000 (15:42 +0200)]
util: delete fnv1a hash function
xxhash is faster than fnv1a in almost all circumstances, so we're
switching to it globally.
Signed-off-by: Dmytro Nester <dmytro.nester@globallogic.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2405
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4020>
Dmitriy Nester [Thu, 27 Feb 2020 13:38:45 +0000 (15:38 +0200)]
zink: replace fnv1a hash function with xxhash
xxhash is faster than fnv1a in almost all circumstances, so we're
switching to it globally.
Signed-off-by: Dmytro Nester <dmytro.nester@globallogic.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4020>
Dmitriy Nester [Thu, 27 Feb 2020 13:37:00 +0000 (15:37 +0200)]
r600: replace fnv1a hash function with xxhash
xxhash is faster than fnv1a in almost all circumstances, so we're
switching to it globally.
Signed-off-by: Dmytro Nester <dmytro.nester@globallogic.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4020>
Dmitriy Nester [Thu, 27 Feb 2020 13:17:45 +0000 (15:17 +0200)]
util/hash_table: replace fnv1a hash function with xxhash
xxhash is faster than fnv1a in almost all circumstances, so we're
switching to it globally.
Signed-off-by: Dmytro Nester <dmytro.nester@globallogic.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4020>
Dmitriy Nester [Thu, 27 Feb 2020 13:28:50 +0000 (15:28 +0200)]
i965: replace fnv1a hash function with xxhash
xxhash is faster than fnv1a in almost all circumstances, so we're
switching to it globally.
Signed-off-by: Dmytro Nester <dmytro.nester@globallogic.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4020>
Dmitriy Nester [Thu, 27 Feb 2020 13:27:17 +0000 (15:27 +0200)]
freedreno: replace fnv1a hash function with xxhash
xxhash is faster than fnv1a in almost all circumstances, so we're
switching to it globally.
Signed-off-by: Dmytro Nester <dmytro.nester@globallogic.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4020>
Dmitriy Nester [Thu, 27 Feb 2020 13:04:25 +0000 (15:04 +0200)]
nir: replace fnv1a hash function with xxhash
xxhash is faster than fnv1a in almost all circumstances, so we're
switching to it globally.
Signed-off-by: Dmytro Nester <dmytro.nester@globallogic.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4020>
Alyssa Rosenzweig [Sat, 23 May 2020 01:49:06 +0000 (21:49 -0400)]
panfrost: Only run batch debug when specifically asked
It's expensive and in a hot path; even for general debug builds we won't
need this, only if we're specifically hacking on batch code.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5202>
Alyssa Rosenzweig [Sat, 23 May 2020 01:35:47 +0000 (21:35 -0400)]
panfrost: Add debug print before query flushes
Just so we know if they're happening.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5202>
Bas Nieuwenhuizen [Mon, 25 May 2020 01:58:16 +0000 (03:58 +0200)]
radv: Implement vkGetSwapchainGrallocUsage2ANDROID.
This was implemented in version 6 of the VK_ANDROID_native_buffer
extension and we only implement version 5. However, the Android
Vulkan loader only checks whether vkGetInstanceProcAddr for the
function is not NULL.
This all went wrong when we switched to the layer code from ANV.
Because the function may now be different per device, it adds fallback
functions that dispatch to the dispatch table. So if we didn't implement
the function we still returned a pointer to the dispatch function,
which made the Android Vulkan loader believe it was supported.
Dispatch functions:
https://gitlab.freedesktop.org/mesa/mesa/-/blob/
d555794f3032594dbef3623052103900138d2356/src/amd/vulkan/radv_entrypoints_gen.py#L328
Fixes: d555794f303 "radv: update entrypoints generation from ANV"
Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2936
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5198>
Simon Ser [Thu, 7 May 2020 19:49:25 +0000 (21:49 +0200)]
EGL: sync headers with Khronos
Taken from EGL-Registry commit
90b78b0662e2f0548cfd1926fb77bf628933541b.
With this update EGL_WL_bind_wayland_display and
EGL_WL_create_wayland_buffer_from_image are now in the registry, so we
don't need to define them in eglmesaext.h anymore.
The eglSwapBufferWithDamage* functions now take a const rects argument.
The eglapi.c function signature is updated accordingly.
Signed-off-by: Simon Ser <contact@emersion.fr>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4953>
Danylo Piliaiev [Mon, 18 May 2020 17:44:58 +0000 (20:44 +0300)]
st/mesa: Clear texture's views when texture is removed from Shared->TexObjects
If texture is shared between several contexts, calling glDeleteTextures
will remove it from ctx->Shared->TexObjects - which makes impossible for
contexts, when destroyed, to release their views to this texture. Which
leaves dangling pointers to destroyed contexts.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2960
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5106>
Bas Nieuwenhuizen [Sat, 23 May 2020 00:36:03 +0000 (02:36 +0200)]
radv: Do not close fd -1 when NULL-winsys creation fails.
Fixes: cd6ec2b1abb "radv: implement a dummy winsys for creating devices without AMDGPU"
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5181>
Bas Nieuwenhuizen [Sat, 23 May 2020 00:32:09 +0000 (02:32 +0200)]
radv: Remove dead code.
pool is always non-NULL, and is also accessed before this check
in the function, so remove the pool = NULL case.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5181>
Bas Nieuwenhuizen [Sat, 23 May 2020 00:26:04 +0000 (02:26 +0200)]
radv: Handle failing to create .cache dir.
Fixes: f4e499ec791 "radv: add initial non-conformant radv vulkan driver"
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5181>
Bas Nieuwenhuizen [Sat, 23 May 2020 00:01:44 +0000 (02:01 +0200)]
radv/winsys: Remove extra sizeof multiply.
The pointer is already uint64_t*, so the sizeof was too much ...
Fixes: eeff7e11544 "radv: Add userspace fence buffer per context."
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5181>
Michel Dänzer [Sat, 23 May 2020 14:07:53 +0000 (16:07 +0200)]
gitlab-ci: Enable -Werror in `meson-s390x` job
It's warning-clean.
v2:
* Prevent -Werror from being enabled in `meson-ppc64le` job as well
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5185>
Samuel Pitoiset [Tue, 19 May 2020 12:49:10 +0000 (14:49 +0200)]
radv: advertise VK_AMD_texture_gather_bias_lod
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/5147>
Samuel Pitoiset [Tue, 19 May 2020 13:05:32 +0000 (15:05 +0200)]
radv: add support for querying which formats support texture gather LOD
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/5147>
Samuel Pitoiset [Wed, 20 May 2020 14:25:28 +0000 (16:25 +0200)]
aco: add support for bias/lod with texture gather
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/5147>