mesa.git
4 years agoamd/addrlib: Clean up unused colorFlags argument
Bas Nieuwenhuizen [Sat, 11 Jul 2020 12:34:58 +0000 (14:34 +0200)]
amd/addrlib: Clean up unused colorFlags argument

Cleanup.

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

4 years agoamd/common: Cache intra-tile addresses for retile map.
Bas Nieuwenhuizen [Sat, 11 Jul 2020 20:04:25 +0000 (22:04 +0200)]
amd/common: Cache intra-tile addresses for retile map.

However complicated DCC addressing is it is still based on tiles.
If we have the intra-tile offsets + tile dimensions we can expand
that to the full image ourselves.

Behavior around ~1080p on a 2500U:

old:
  30-60 ms on every miss

new:
  5 ms initally (miss in the tile cache)
  <0.5 ms afterwards

The most common case is that the tile cache only contains data for
2 tiles, which for Raven/Renoir/Navi14 will be 4 KiB each, so the
size increase is fairly modest.

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

4 years agoaco: use s_waitcnt_depctr to mitigate VMEMtoScalarWriteHazard
Rhys Perry [Wed, 15 Jul 2020 16:08:01 +0000 (17:08 +0100)]
aco: use s_waitcnt_depctr to mitigate VMEMtoScalarWriteHazard

Apparently this is potentially faster than v_nop:
https://reviews.llvm.org/D83872

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5923>

4 years agoaco: properly recognize that s_waitcnt mitigates VMEMtoScalarWriteHazard
Rhys Perry [Wed, 15 Jul 2020 16:34:21 +0000 (17:34 +0100)]
aco: properly recognize that s_waitcnt mitigates VMEMtoScalarWriteHazard

fossil-db (Navi):
Totals from 555 (0.41% of 135946) affected shaders:
CodeSize: 1005716 -> 1003400 (-0.23%)
Instrs: 195326 -> 194744 (-0.30%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5923>

4 years agomeson: Enable GCing of functions and data from compilation units by default.
Eric Anholt [Fri, 3 Jul 2020 19:03:52 +0000 (12:03 -0700)]
meson: Enable GCing of functions and data from compilation units by default.

Normally, the linker will pull in any compilation unit (aka .c file) from
a static lib (such as our shared util code) that is depended on by the
code linking against it.  Since that code is already compiled, the .text
section is allowed to jump anywhere in .text, and the compiler can't
garbage collect unused functions inside of a compile unit.

Teasing callgraphs apart so that normal compilation-unit-level GCing can
reduce driver size hurts the logical organization of the code and is
difficult.  As an example, once I'd split the format pack/unpack tables, I
had to split out util_format_read/write() from util_format.c to avoid
pulling in pack/unpack.  But even then it didn't help, because it turns
out turnip's pack calls pull in util_format_bptc.c for bptc packing, but
that file also includes the unpack impls, and those internally call
util_format_unpack, and thus we pulled in all of unpack.  Splitting all of
this to separate files makes code harder to find and maintain, and is a
waste of dev time.

By setting these compiler flags, the compiler puts each function and data
symbol in a separate ELF section and the linker can then safely GC unused
text and data sections from a compile unit that gets pulled in.  There's a
bit of a space cost due to having those separate sections, but it ends up
being a huge win in disk space on my personal release driver builds:

- i965_dri.so -213k
- x86 gallium dri.so -430k
- libvulkan_intel.so -272k
- aarch64 gallium dri.so -330k
- libvulkan_freedreno.so -783k

No difference on iris drawoverhead -compat -test 1 on my skylake (n=60)

Effect on debugoptimized build times (n=5)
touch nir_lower_io.c build time (bfd)        +15.999% +/- 3.80377%
touch freedreno fd6_gmem.c build time (bfd)  +13.5294% +/- 4.86363%
touch nir_lower_io.c build time (lld)        no change
touch freedreno fd6_gmem.c build time (lld)  +2.45375% +/- 2.2383%

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5739>

4 years agopanfrost: Enable FP16 by default
Alyssa Rosenzweig [Fri, 17 Jul 2020 21:04:41 +0000 (17:04 -0400)]
panfrost: Enable FP16 by default

I see no reason to hide this. The small hit in cycle count is offset in
practice by the increase in thread count. So let's ship it and get some
testing.

If this regresses a workload:

1. Open an issue on the tracker and attach an apitrace.
2. In the meantime set PAN_MESA_DEBUG=nofp16 to override.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5960>

4 years agogitlab-ci: re-enable all a630 jobs
Rob Clark [Thu, 16 Jul 2020 21:20:22 +0000 (14:20 -0700)]
gitlab-ci: re-enable all a630 jobs

I haven't noticed tftp boot issues in last few days, not sure if they
where just a fluke on Mon or if it is somehow related to # of jobs we
run (ie. having more of the c630 runners powered up and running more
of the time).

Let's turn them back on and see what happens.

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

4 years agofreedreno/a2xx: Fix compiler warning in disasm.
Eric Anholt [Fri, 17 Jul 2020 17:48:56 +0000 (10:48 -0700)]
freedreno/a2xx: Fix compiler warning in disasm.

warning: converting a packed ‘instr_cf_t’ {aka ‘union <anonymous>’}
pointer (alignment 1) to a ‘uint16_t’ {aka ‘short unsigned int’} pointer
(alignment 2) may result in an unaligned pointer value
[-Waddress-of-packed-member]

We may know that we'll only ever have aligned instr_cf_ts, but gcc
doesn't.

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

4 years agogitlab-ci: Re-add kernels for bare-metal
Tomeu Vizoso [Thu, 9 Jul 2020 20:38:51 +0000 (22:38 +0200)]
gitlab-ci: Re-add kernels for bare-metal

I mistakenly removed what I thought were remnants of when Freedreno used
LAVA for their DUTs. lava_arm.sh is used for baremetal, so re-add that
code.

Fixes: dcd171f5e9bd ("gitlab-ci: More stable URL for kernel and ramdisk artifacts, for LAVA")
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5839>

4 years agonir: Set the alignment for SSBO lowering
Icecream95 [Fri, 17 Jul 2020 11:26:41 +0000 (23:26 +1200)]
nir: Set the alignment for SSBO lowering

The alignment can just be copied from the source intrinsic.

Fixes the assertion
nir_intrinsic_align_offset(instr) < nir_intrinsic_align_mul(instr)

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5949>

4 years agointel/perf: Move perf query register programming to static tables.
Eric Anholt [Thu, 9 Jul 2020 16:41:45 +0000 (09:41 -0700)]
intel/perf: Move perf query register programming to static tables.

And now that they're static tables, we don't need to ralloc a copy in
non-shared memory.

Saves ~210k in the built intel drivers.

Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1048434
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5829>

4 years agointel/perf: Fix unused var warning in release builds.
Eric Anholt [Thu, 9 Jul 2020 17:06:08 +0000 (10:06 -0700)]
intel/perf: Fix unused var warning in release builds.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5829>

4 years agointel: Fix release-build warnings about sf_entry_size.
Eric Anholt [Thu, 9 Jul 2020 18:07:42 +0000 (11:07 -0700)]
intel: Fix release-build warnings about sf_entry_size.

In one side of the ifdef it's only used in an assert.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5829>

4 years agozink: use ralloc for spirv_builder as well
Erik Faye-Lund [Fri, 17 Jul 2020 17:18:58 +0000 (19:18 +0200)]
zink: use ralloc for spirv_builder as well

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5954>

4 years agozink: pass mem_ctx to ralloc_size-call
Erik Faye-Lund [Fri, 17 Jul 2020 17:03:05 +0000 (19:03 +0200)]
zink: pass mem_ctx to ralloc_size-call

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5954>

4 years agozink: use ralloc for plain malloc-calls
Erik Faye-Lund [Fri, 17 Jul 2020 16:55:53 +0000 (18:55 +0200)]
zink: use ralloc for plain malloc-calls

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5954>

4 years agozink: use ralloc in nir-to-spirv
Erik Faye-Lund [Fri, 17 Jul 2020 16:52:13 +0000 (18:52 +0200)]
zink: use ralloc in nir-to-spirv

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5954>

4 years agoradv: enable more float_controls features
Rhys Perry [Thu, 2 Jul 2020 12:38:18 +0000 (13:38 +0100)]
radv: enable more float_controls features

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

4 years agoaco: set tcs_in_out_eq=false if float controls of VS and TCS stages differ
Rhys Perry [Thu, 2 Jul 2020 12:37:10 +0000 (13:37 +0100)]
aco: set tcs_in_out_eq=false if float controls of VS and TCS stages differ

Otherwise, we might have both VS and TCS code in the same block but float
controls are set per-block.

We also rely on VS code not dominating TCS code for the optimizer to work
correctly.

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

4 years agoaco: fix nir_op_f2f16_rtne with non-default rounding modes
Rhys Perry [Thu, 2 Jul 2020 12:35:41 +0000 (13:35 +0100)]
aco: fix nir_op_f2f16_rtne with non-default rounding modes

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

4 years agoaco: flush denormals before fp16 fabs/fneg if needed
Rhys Perry [Thu, 2 Jul 2020 12:34:57 +0000 (13:34 +0100)]
aco: flush denormals before fp16 fabs/fneg if needed

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

4 years agoaco: use s_round_mode/s_denorm_mode
Rhys Perry [Thu, 2 Jul 2020 12:33:55 +0000 (13:33 +0100)]
aco: use s_round_mode/s_denorm_mode

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

4 years agopanfrost: Set depth_enabled when stencil is enabled
Icecream95 [Fri, 17 Jul 2020 09:23:03 +0000 (21:23 +1200)]
panfrost: Set depth_enabled when stencil is enabled

Fixes square circles in the KiCad 3D viewer.

v2: Cleanup a bit, add a comment, and handle the fs->writes_stencil case
to be pedantic (Alyssa).

Reported-by: Urja Rannikko <urjaman@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5946>

4 years agoradv: return better Vulkan error codes when VkQueueSubmit() fails
Samuel Pitoiset [Mon, 13 Jul 2020 08:35:56 +0000 (10:35 +0200)]
radv: return better Vulkan error codes when VkQueueSubmit() fails

The driver shouldn't abort when a CS submission fails.

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

4 years agoradv: improve the error messages when a CS submission failed
Samuel Pitoiset [Sun, 12 Jul 2020 19:03:33 +0000 (21:03 +0200)]
radv: improve the error messages when a CS submission failed

While we are at it, do not duplicate the error messages for the
three different submission paths.

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

4 years agoradv: remove one useless goto in radv_queue_submit_deferred()
Samuel Pitoiset [Sun, 12 Jul 2020 18:44:22 +0000 (20:44 +0200)]
radv: remove one useless goto in radv_queue_submit_deferred()

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

4 years agopanfrost: Report TEXTURE_BUFFER_OBJECTS cap when gl3 flag set
Icecream95 [Fri, 17 Jul 2020 10:15:42 +0000 (22:15 +1200)]
panfrost: Report TEXTURE_BUFFER_OBJECTS cap when gl3 flag set

OpenGL 3.3 is now reported again when PAN_MESA_DEBUG=gl3 is set.

Fixes: 96fa8d70bc1 ("panfrost: Report CAPs more honestly")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5947>

4 years agonir: Fix lower_two_sided_color when the face is an input
Icecream95 [Tue, 14 Jul 2020 10:18:21 +0000 (22:18 +1200)]
nir: Fix lower_two_sided_color when the face is an input

Fixes the two-sided-lighting and vertex-program-two-side piglit tests
on Panfrost.

v2: Use an existing variable for gl_FrontFacing if present.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Tested-by: Urja Rannikko <urjaman@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5915>

4 years agonir: Add a face_sysval argument to nir_lower_two_sided_color
Icecream95 [Tue, 14 Jul 2020 10:17:34 +0000 (22:17 +1200)]
nir: Add a face_sysval argument to nir_lower_two_sided_color

This is needed for handling drivers that use an input for loading the
face, for example Panfrost with Midgard GPUs.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Tested-by: Urja Rannikko <urjaman@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5915>

4 years agopanfrost: Do per-sample shading when outputs are read
Icecream95 [Thu, 16 Jul 2020 02:22:38 +0000 (14:22 +1200)]
panfrost: Do per-sample shading when outputs are read

Fixes dEQP-GLES31.functional.blend_equation_advanced.msaa.*

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5930>

4 years agopan/mdg: Do per-sample framebuffer loads
Icecream95 [Thu, 16 Jul 2020 02:16:11 +0000 (14:16 +1200)]
pan/mdg: Do per-sample framebuffer loads

EXT_shader_framebuffer_fetch requires the fetched value to be per-sample, so we
need to load the sample id when in a fragment shader.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5930>

4 years agopanfrost: Rename lower_store to is_blend in pan_lower_framebuffer
Icecream95 [Thu, 16 Jul 2020 02:12:18 +0000 (14:12 +1200)]
panfrost: Rename lower_store to is_blend in pan_lower_framebuffer

The bool will be used for deciding whether to do a per-sample load.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5930>

4 years agopan/mdg: Don't disassemble blit shaders
Icecream95 [Fri, 17 Jul 2020 10:34:04 +0000 (22:34 +1200)]
pan/mdg: Don't disassemble blit shaders

There are a lot of them and they are mostly uninteresting, so don't
disassemble them or print shader-db results.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5948>

4 years agogitlab-ci: Only trigger test-docs job automatically for MRs
Michel Dänzer [Wed, 15 Jul 2020 08:59:54 +0000 (10:59 +0200)]
gitlab-ci: Only trigger test-docs job automatically for MRs

Follow-up to
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5898 .

Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5918>

4 years agovirgl: set PIPE_CAP_BLEND_EQUATION_ADVANCED
Elie Tournier [Thu, 16 Jul 2020 12:41:15 +0000 (13:41 +0100)]
virgl: set PIPE_CAP_BLEND_EQUATION_ADVANCED

Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>

4 years agovirgl: Encode barrier for blend_equation_advanced
Elie Tournier [Wed, 8 Jul 2020 11:02:31 +0000 (12:02 +0100)]
virgl: Encode barrier for blend_equation_advanced

Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>

4 years agovirgl: Use alpha_src_factor to store blend_equation_advenced value
Elie Tournier [Wed, 24 Jun 2020 20:43:40 +0000 (21:43 +0100)]
virgl: Use alpha_src_factor to store blend_equation_advenced value

Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>

4 years agoglsl_to_ir: do lower_blend_equation if PIPE_CAP_FBFETCH
Elie Tournier [Tue, 2 Jun 2020 13:03:14 +0000 (14:03 +0100)]
glsl_to_ir: do lower_blend_equation if PIPE_CAP_FBFETCH

Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>

4 years agost: expose KHR_blend_equation_advanced if PIPE_CAP_BLEND_EQUATION_ADVANCED
Elie Tournier [Wed, 3 Jun 2020 09:32:47 +0000 (10:32 +0100)]
st: expose KHR_blend_equation_advanced if PIPE_CAP_BLEND_EQUATION_ADVANCED

With virgl, we want to expose KHR_blend_equation_advanced even if EXT_shader_framebuffer_fetch
is not available.

Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>

4 years agogallium: Add PIPE_CAP_BLEND_EQUATION_ADVANCED
Elie Tournier [Tue, 2 Jun 2020 10:24:34 +0000 (11:24 +0100)]
gallium: Add PIPE_CAP_BLEND_EQUATION_ADVANCED

Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>

4 years agovirgl: Reserved last caps of capability_bits
Elie Tournier [Mon, 13 Jul 2020 08:23:33 +0000 (09:23 +0100)]
virgl: Reserved last caps of capability_bits

This cap is used by virglrenderer but not by Mesa.

Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>

4 years agoglsl_to_tgsi: Set TGSI_PROPERTY_FS_BLEND_EQUATION_ADVANCED
Elie Tournier [Wed, 10 Jun 2020 10:29:24 +0000 (11:29 +0100)]
glsl_to_tgsi: Set TGSI_PROPERTY_FS_BLEND_EQUATION_ADVANCED

In virgl, when fbfetch extention is not available but blend_equation_advanced is,
we didn't call lower_blend_equation_advanced. So we need to pass the blend value
to the host in order to recreate the shader correctly.

Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>

4 years agogallium: add TGSI_PROPERTY_FS_BLEND_EQUATION_ADVANCED
Elie Tournier [Tue, 9 Jun 2020 10:41:41 +0000 (11:41 +0100)]
gallium: add TGSI_PROPERTY_FS_BLEND_EQUATION_ADVANCED

For virgl, we don't lower advanced equation to fbfetch
So we need to pass the blend equation info in the TGSI to the host

Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>

4 years agomesa: treat Color._AdvancedBlendMode as enum
Erik Faye-Lund [Wed, 24 Jun 2020 13:47:01 +0000 (15:47 +0200)]
mesa: treat Color._AdvancedBlendMode as enum

Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>

4 years agomesa: do not use bitfields for advanced-blend state
Erik Faye-Lund [Wed, 24 Jun 2020 13:40:34 +0000 (15:40 +0200)]
mesa: do not use bitfields for advanced-blend state

Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>

4 years agost/mesa: fix st_CopyPixels without support for stencil exports
Karol Herbst [Thu, 16 Jul 2020 18:22:58 +0000 (20:22 +0200)]
st/mesa: fix st_CopyPixels without support for stencil exports

Fixes: f611af35948e ("st/mesa: use fragment shader to copy stencil buffer")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5940>

4 years agonvc0_2d: Document SET_PIXELS_FROM_MEMORY_CORRAL_SIZE from rnndb
Rhys Kidd [Wed, 15 Jul 2020 15:30:44 +0000 (01:30 +1000)]
nvc0_2d: Document SET_PIXELS_FROM_MEMORY_CORRAL_SIZE from rnndb

Present in both cl502d and cl902d.

Based on envytools commit 889f8fb4445863c19336c31dd13ecbdd3b19a196

Signed-off-by: Rhys Kidd <rhyskidd@gmail.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5922>

4 years agonv50_2d,nvc0_2d: Document SET_PIXELS_FROM_MEMORY_SAFE_OVERLAP from rnndb
Rhys Kidd [Wed, 15 Jul 2020 15:10:12 +0000 (01:10 +1000)]
nv50_2d,nvc0_2d: Document SET_PIXELS_FROM_MEMORY_SAFE_OVERLAP from rnndb

Present in both cl502d and cl902d.

Based on envytools commit 0b9d3e717828a06be6937395464c34dfc870a6dc

Signed-off-by: Rhys Kidd <rhyskidd@gmail.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5922>

4 years agodocs/features: Mark trivial missed feature
Alyssa Rosenzweig [Thu, 16 Jul 2020 23:19:08 +0000 (19:19 -0400)]
docs/features: Mark trivial missed feature

It's right there in GLES.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5943>

4 years agoegl: mark the rest of the callbacks as mandatory or optional
Eric Engestrom [Mon, 13 Jul 2020 09:08:53 +0000 (11:08 +0200)]
egl: mark the rest of the callbacks as mandatory or optional

Suggested-by: Frank Binns <frank.binns@imgtec.com>
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>

4 years agoegl: drop now empty egl_dri2_fallbacks.h
Eric Engestrom [Fri, 10 Jul 2020 22:44:22 +0000 (00:44 +0200)]
egl: drop now empty egl_dri2_fallbacks.h

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>

4 years agoegl: inline fallback for get_sync_values
Eric Engestrom [Fri, 10 Jul 2020 22:42:08 +0000 (00:42 +0200)]
egl: inline fallback for get_sync_values

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>

4 years agoegl: inline fallback for create_wayland_buffer_from_image
Eric Engestrom [Fri, 10 Jul 2020 22:41:35 +0000 (00:41 +0200)]
egl: inline fallback for create_wayland_buffer_from_image

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>

4 years agoegl: inline fallback for query_buffer_age
Eric Engestrom [Fri, 10 Jul 2020 22:40:57 +0000 (00:40 +0200)]
egl: inline fallback for query_buffer_age

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>

4 years agoegl: inline fallback for copy_buffers
Eric Engestrom [Fri, 10 Jul 2020 22:40:20 +0000 (00:40 +0200)]
egl: inline fallback for copy_buffers

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>

4 years agoegl: inline fallback for post_sub_buffer
Eric Engestrom [Fri, 10 Jul 2020 22:39:41 +0000 (00:39 +0200)]
egl: inline fallback for post_sub_buffer

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>

4 years agoegl: inline fallback for swap_buffers_region
Eric Engestrom [Fri, 10 Jul 2020 22:38:38 +0000 (00:38 +0200)]
egl: inline fallback for swap_buffers_region

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>

4 years agoegl: inline fallback for swap_buffers_with_damage
Eric Engestrom [Fri, 10 Jul 2020 22:36:08 +0000 (00:36 +0200)]
egl: inline fallback for swap_buffers_with_damage

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>

4 years agoegl: drop unused fallback function
Eric Engestrom [Fri, 10 Jul 2020 22:33:53 +0000 (00:33 +0200)]
egl: drop unused fallback function

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>

4 years agoegl: inline fallback for create_pbuffer_surface
Eric Engestrom [Fri, 10 Jul 2020 22:31:32 +0000 (00:31 +0200)]
egl: inline fallback for create_pbuffer_surface

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>

4 years agoegl: inline fallback for create_pixmap_surface
Eric Engestrom [Fri, 10 Jul 2020 22:29:17 +0000 (00:29 +0200)]
egl: inline fallback for create_pixmap_surface

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>

4 years agodriconf: allowlist/denylist
Rob Clark [Wed, 15 Jul 2020 00:32:11 +0000 (17:32 -0700)]
driconf: allowlist/denylist

I think this is the one user facing use of blacklist/whitelist.  But we
like all of our users, so lets be more inclusive.

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

4 years agopan/decode: Open the dump file later
Icecream95 [Thu, 16 Jul 2020 04:12:13 +0000 (16:12 +1200)]
pan/decode: Open the dump file later

Opening the dump file in pandecode_jc instead of doing it in
pandecode_next_frame avoids creating zero sized files when
applications exit.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5931>

4 years agogitlab-ci: Run all of GLES3 tests for Panfrost
Tomeu Vizoso [Thu, 16 Jul 2020 08:24:35 +0000 (10:24 +0200)]
gitlab-ci: Run all of GLES3 tests for Panfrost

We have enough capacity now and Panfrost should be very near to GLES3
compliance.

v2: Update fails list (Alyssa)

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5932>

4 years agoradv: split fence into two parts as enum+union.
Samuel Pitoiset [Tue, 14 Jul 2020 19:46:17 +0000 (21:46 +0200)]
radv: split fence into two parts as enum+union.

To be consistent with semaphores and for clean up.

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

4 years agoradv: optimize creating signaled syncobj with amdgpu_cs_create_syncobj2()
Samuel Pitoiset [Tue, 14 Jul 2020 19:23:17 +0000 (21:23 +0200)]
radv: optimize creating signaled syncobj with amdgpu_cs_create_syncobj2()

This creates a syncobj and sets it as signaled with one ioctl
instead of two.

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

4 years agoradv: fix the error code when allocating a fresh imported syncobj fails
Samuel Pitoiset [Tue, 14 Jul 2020 21:15:55 +0000 (23:15 +0200)]
radv: fix the error code when allocating a fresh imported syncobj fails

It can only be an OOM error.

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

4 years agoradv: fix the error code when exporting a semaphore/fence fails
Samuel Pitoiset [Tue, 14 Jul 2020 20:59:58 +0000 (22:59 +0200)]
radv: fix the error code when exporting a semaphore/fence fails

VK_ERROR_INVALID_EXTERNAL_HANDLE is not a valid Vulkan error code
for these functions and it's likely that too many objects are
created instead.

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

4 years agoradv: fix destroying the syncobj when exporting a fence FD
Samuel Pitoiset [Tue, 14 Jul 2020 20:55:04 +0000 (22:55 +0200)]
radv: fix destroying the syncobj when exporting a fence FD

It's invalid and the temporary syncobj was never actually destroyed.

Cc: 20.1 <mesa-stable@lists.freedesktop.org>
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/5921>

4 years agotu: Enable VK_EXT_shader_stencil_export
Connor Abbott [Thu, 16 Jul 2020 13:49:36 +0000 (15:49 +0200)]
tu: Enable VK_EXT_shader_stencil_export

This passes the grand total of 3 CTS tests (2 actually enabled due to
missing D32_SFLOAT_S8_UINT support) under
dEQP-VK.pipeline.shader_stencil_export.*

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

4 years agoir3: Handle gl_FragStencilRefARB
Connor Abbott [Thu, 16 Jul 2020 13:47:27 +0000 (15:47 +0200)]
ir3: Handle gl_FragStencilRefARB

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

4 years agofreedreno/a6xx: Add stencilref register info
Connor Abbott [Thu, 16 Jul 2020 13:48:41 +0000 (15:48 +0200)]
freedreno/a6xx: Add stencilref register info

Found by guessing.

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

4 years agopanfrost: Revert "Disable frame throttling"
Alyssa Rosenzweig [Thu, 16 Jul 2020 18:07:09 +0000 (14:07 -0400)]
panfrost: Revert "Disable frame throttling"

This reverts commit 4fee7b30c0ecc56d7659ecad1d8b140ab253f0db, which was
intended to be a temporary workaround for a leak introduced in
a65e29ccb26 ("gallium: simplify throttle implementation"). However, that
leak was then fixed in 023282a4f667695ea1dbbe9fbe1cd3a9d550a426 and we
forgot to revert this hack.

Closes: #2108
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>

4 years agopanfrost: Enable Chromium
Alyssa Rosenzweig [Wed, 15 Jul 2020 23:22:53 +0000 (19:22 -0400)]
panfrost: Enable Chromium

With the latest batch of fixes, Chromium works (including WebGL support,
although performance is still WIP).

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>

4 years agopanfrost: Report CAPs more honestly
Alyssa Rosenzweig [Wed, 15 Jul 2020 22:38:02 +0000 (18:38 -0400)]
panfrost: Report CAPs more honestly

We're overreporting on some chips and underreporting on others. Let's be
more honest.

This exposes OpenGL ES 3.0 on Mali T760 through T860.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>

4 years agopanfrost: Fix faults with RASTERIZER_DISCARD
Alyssa Rosenzweig [Thu, 16 Jul 2020 17:33:32 +0000 (13:33 -0400)]
panfrost: Fix faults with RASTERIZER_DISCARD

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>

4 years agopanfrost: Honour cso->compare_mode
Alyssa Rosenzweig [Tue, 14 Jul 2020 22:55:07 +0000 (18:55 -0400)]
panfrost: Honour cso->compare_mode

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>

4 years agopanfrost: Avoid integer underflow in rt_count_1
Alyssa Rosenzweig [Tue, 14 Jul 2020 21:08:54 +0000 (17:08 -0400)]
panfrost: Avoid integer underflow in rt_count_1

If rt_count = 0, this underflows to MAX_MRT. The hw doesn't seem to care
but it's semantically incorrect and confuses pandecode.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>

4 years agopanfrost: Abort on unsupported blit
Alyssa Rosenzweig [Thu, 9 Jul 2020 20:22:38 +0000 (16:22 -0400)]
panfrost: Abort on unsupported blit

Instead of silently failing.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>

4 years agopanfrost: Implement Z32F_S8 blits
Alyssa Rosenzweig [Thu, 9 Jul 2020 20:34:00 +0000 (16:34 -0400)]
panfrost: Implement Z32F_S8 blits

Requires the ability to texture the stencil-only portion, and then
u_blitter kicks in for the rest.

v2: Fix dEQP-GLES31.functional.stencil_texturing.*

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>

4 years agopanfrost: Fix sRGB clear colour packing
Alyssa Rosenzweig [Thu, 9 Jul 2020 19:21:32 +0000 (15:21 -0400)]
panfrost: Fix sRGB clear colour packing

It should be sRGB transformed first, which the generic path handles but
the RGBA8 special path does not.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>

4 years agopanfrost: Set PIPE_CAP_MIXED_COLORBUFFER_FORMATS
Alyssa Rosenzweig [Thu, 9 Jul 2020 18:39:51 +0000 (14:39 -0400)]
panfrost: Set PIPE_CAP_MIXED_COLORBUFFER_FORMATS

Missed that this is needed, fixes fbo.completeness.*

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>

4 years agopanfrost: Overhaul tilebuffer allocations
Alyssa Rosenzweig [Thu, 9 Jul 2020 21:35:24 +0000 (17:35 -0400)]
panfrost: Overhaul tilebuffer allocations

Based on the colour buffers in use, we need to select a tile size
allowing either 128-bits of storage per pixel or 512-bits. Based on the
size chosen, we scale the offsets into the tilebuffer. Likewise, we need
to calculate offsets based on bpp (with special cases) rather than
picking an average case.

Fixes regressions that otherwise would be caused by the next commit.

v2: Fix colour clears (Icecream95).

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>

4 years agopanfrost: Call util_blitter_save_fragment_constant_buffer_slot
Alyssa Rosenzweig [Tue, 14 Jul 2020 20:58:57 +0000 (16:58 -0400)]
panfrost: Call util_blitter_save_fragment_constant_buffer_slot

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>

4 years agollvmpipe: fix position offset interpolation
Dave Airlie [Mon, 13 Jul 2020 05:44:24 +0000 (15:44 +1000)]
llvmpipe: fix position offset interpolation

pos offset only applies to the gl_FragPos input, when I refactored
I messed that up, only use pos_offset for the position inputs
and use 0.5 otherwise.

This fixes:
GTF-GL45.gtf30.GL3Tests.fragment_coord_conventions.fragment_coord_conventions_multisample

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5926>

4 years agollvmpipe: fix stencil only formats.
Dave Airlie [Tue, 3 Dec 2019 06:01:37 +0000 (16:01 +1000)]
llvmpipe: fix stencil only formats.

Currently the test crashes with LLVM errors
Stored value type does not match pointer operand type!
  store <8 x i32> %s_dst, <8 x i8>* %261

Change the stored type for 8-bit stencil formats.

Fixes:
GTF-GL45.gtf44.GL31Tests.texture_stencil8.texture_stencil8_gl44

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5926>

4 years agoradeonsi: use PIPE_FORMAT_P010 for 10-bit VP9 decoding
Thong Thai [Fri, 10 Jul 2020 18:03:26 +0000 (14:03 -0400)]
radeonsi: use PIPE_FORMAT_P010 for 10-bit VP9 decoding

Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: Leo Liu <leoliu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5848>

4 years agoaco: add add_interference() helper
Rhys Perry [Thu, 16 Jul 2020 10:08:50 +0000 (11:08 +0100)]
aco: add add_interference() helper

This won't add interferences between spill ids of different types and will
exit early if there's already an interference.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5805>

4 years agoaco: use unordered_set for spill id interferences
Rhys Perry [Tue, 7 Jul 2020 12:11:07 +0000 (13:11 +0100)]
aco: use unordered_set for spill id interferences

Seems to be faster.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5805>

4 years agoaco: rewrite graph coloring in spiller
Rhys Perry [Tue, 7 Jul 2020 12:10:38 +0000 (13:10 +0100)]
aco: rewrite graph coloring in spiller

I don't think this is much of an optimization in the typical case, but for
very complex shaders this should work much better.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5805>

4 years agoaco: fix underestimated pressure in spiller when a phi has a killed def
Rhys Perry [Tue, 7 Jul 2020 17:16:47 +0000 (18:16 +0100)]
aco: fix underestimated pressure in spiller when a phi has a killed def

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5805>

4 years agopanfrost: Use Midgard-specific reloads
Alyssa Rosenzweig [Thu, 9 Jul 2020 17:42:25 +0000 (13:42 -0400)]
panfrost: Use Midgard-specific reloads

v2: Be more explicit about sampler types. Prefer the term "load" to
"resolve" to match VK convention. Generate shaders for MRT 8x.  Blit
shader generation adds about 6ms to startup cost. We could cache thes.
shaders to disk if we needed to (or indeed, ship binaries).

v3: Fallback on u_blitter on Bifrost so Bifrost continues to work.
KHR_partial_update support is mostly no-oped on Bifrost now, but that's
okay for now - compositors are still functional.

v4: Specialize on multisample state as well to enable reloads of MSAA
textures. This requires 2x the shader variants, so I assume we're up to
12ms startup cost for generation. Annoying. Also fix interactions with
depth- or stencil-only clears of combined depth-stencil surfaces.

v5: Cache to the device (screen) instead of the context, reducing
duplicated work in apps that create many contexts (e.g. Chromium)

v6: Squash in KHR_partial_update cleanup to fix intermediate
regressions on a few tests.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5824>

4 years agost/mesa: use fragment shader to copy stencil buffer
Indrajit Kumar Das [Fri, 10 Jul 2020 06:15:22 +0000 (11:45 +0530)]
st/mesa: use fragment shader to copy stencil buffer

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

4 years agomesa/main: use p_atomic_inc_return instead of locking
Erik Faye-Lund [Fri, 10 Jul 2020 11:12:40 +0000 (13:12 +0200)]
mesa/main: use p_atomic_inc_return instead of locking

There's no good reason for using a mutex here, as we have a simpler
primitive; atomic integers. So let's use that instead, to simplify
things a bit.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5901>

4 years agost/mesa: fix corrupted texture levels, when adding more levels than expected
Yevhenii Kharchenko [Wed, 1 Jul 2020 14:36:18 +0000 (17:36 +0300)]
st/mesa: fix corrupted texture levels, when adding more levels than expected

Some of existing texture levels can be corruted,
after calling 'glTexImage' with param 'level' higher than
max expected value 'floor(log2(max(width, height, depth)))'.

To fix we prevent overwriting image buffer pointer
in 'st_texture_object', if it was already allocated
for multiple mip-levels storage.

Fixes piglit test: 'arb_copy_image add-illegal-levels'

Signed-off-by: Yevhenii Kharchenko <yevhenii.kharchenko@globallogic.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5785>

4 years agogallium/util: do not use _MTX_INITIALIZER_NP on Windows
Erik Faye-Lund [Fri, 10 Jul 2020 10:31:51 +0000 (12:31 +0200)]
gallium/util: do not use _MTX_INITIALIZER_NP on Windows

We already have another way of initializing these, so it's just a matter
of avoiding _MTX_INITIALIZER_NP here.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5902>

4 years agoradv/winsys: pass the buffer list via the CS ioctl for less CPU overhead
Samuel Pitoiset [Tue, 14 Jul 2020 09:16:45 +0000 (11:16 +0200)]
radv/winsys: pass the buffer list via the CS ioctl for less CPU overhead

The legacy path requires one more ioctl to create the buffer
list and this is more costly for the CPU.

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

4 years agoradv/winsys: replace alloca() by malloc() everywhere
Samuel Pitoiset [Tue, 14 Jul 2020 07:48:56 +0000 (09:48 +0200)]
radv/winsys: replace alloca() by malloc() everywhere

To remove the mix of alloca() and malloc().

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

4 years agov3d/compiler: Lower geometry output store base into offset src
Neil Roberts [Tue, 7 Jul 2020 13:49:27 +0000 (15:49 +0200)]
v3d/compiler: Lower geometry output store base into offset src

When generating the VPM write instruction for geometry shader outputs,
emit_store_output_gs ends up adding the base and offset arguments
together with an ADD instruction. The addition was done at the VIR level
after scheduling so it always ends up right next to the corresponding
stvpm instruction. Most of the time the offset is constant but nothing
does any constant folding at the VIR level.

This patch makes it instead fold the addition into the offset at the NIR
level in v3d_nir_lower_io so that the NIR-level constant folding can get
rid of the addition most of the time.

v2: Use nir_iadd_imm to simplify the code. (Eric Anholt)

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5825>

4 years agoradeonsi: prevent a gfx10_ngg_calculate_subgroup_info failure for TES+NGG GS
Marek Olšák [Tue, 30 Jun 2020 20:57:23 +0000 (16:57 -0400)]
radeonsi: prevent a gfx10_ngg_calculate_subgroup_info failure for TES+NGG GS

arb_tessellation_shader-tes-gs-max-output -small -scan 1 50 -auto -fbo
doesn't pass, but at least all shaders are compiled successfully.

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