platform/upstream/mesa.git
3 years agofreedreno/a6xx: Support PIPE_FORMAT_R8_G8B8_420_UNORM for texturing
Kristian H. Kristensen [Mon, 28 Sep 2020 20:21:49 +0000 (20:21 +0000)]
freedreno/a6xx: Support PIPE_FORMAT_R8_G8B8_420_UNORM for texturing

This makes freedreno advertise support for
PIPE_FORMAT_R8_G8B8_420_UNORM on a6xx, which enables lowering NV12 to
this format.

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

3 years agofreedreno/a6xx: Generalize pointers in struct fd6_pipe_sampler_view
Kristian H. Kristensen [Wed, 7 Oct 2020 21:33:57 +0000 (21:33 +0000)]
freedreno/a6xx: Generalize pointers in struct fd6_pipe_sampler_view

Add resource pointers ptr1 and ptr2 and offsets offset1 and offset2,
and just emit relocs if the pointers are non-NULL.  This lets us move
a little more logic to the CSO building.

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

3 years agost/mesa: Add NV12 lowering to PIPE_FORMAT_R8_G8B8_420_UNORM
Kristian H. Kristensen [Mon, 28 Sep 2020 20:11:18 +0000 (20:11 +0000)]
st/mesa: Add NV12 lowering to PIPE_FORMAT_R8_G8B8_420_UNORM

Some GPUs can sample biplanar formats like NV12 natively, returning
the YUV values. Add a lowering type that uses that for sampling and
relies on existing colorspace conversions.

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

3 years agoutil/formats: Add PIPE_FORMAT_R8_G8B8_420_UNORM
Kristian H. Kristensen [Mon, 28 Sep 2020 15:34:07 +0000 (15:34 +0000)]
util/formats: Add PIPE_FORMAT_R8_G8B8_420_UNORM

This is a planar, subsampled format. It's basically NV12, but without
colorspace conversion.

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

3 years agoiris: Use the data cache for indirect UBO pulls
Jason Ekstrand [Sat, 22 Feb 2020 05:38:58 +0000 (23:38 -0600)]
iris: Use the data cache for indirect UBO pulls

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

3 years agoanv: Use the data cache for indirect UBO pulls on Gen8+
Jason Ekstrand [Fri, 21 Feb 2020 17:45:37 +0000 (11:45 -0600)]
anv: Use the data cache for indirect UBO pulls on Gen8+

On Gen7, the data cache is pretty terrible so we'd rather avoid it
there.  On Gen8+, it should be fine and is less likely to conflict with
texturing so we should get less cache thrashing there.

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

3 years agoanv: Plumb the device into *bits_for_access_flags
Jason Ekstrand [Mon, 24 Feb 2020 21:51:41 +0000 (15:51 -0600)]
anv: Plumb the device into *bits_for_access_flags

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

3 years agoanv: Use format_for_descriptor_type for descriptor buffers
Jason Ekstrand [Fri, 21 Feb 2020 18:36:41 +0000 (12:36 -0600)]
anv: Use format_for_descriptor_type for descriptor buffers

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

3 years agoanv: Add a device parameter to format_for_descriptor_type
Jason Ekstrand [Fri, 21 Feb 2020 18:35:27 +0000 (12:35 -0600)]
anv: Add a device parameter to format_for_descriptor_type

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

3 years agointel/fs: Add an option to use dataport messages for UBOs
Jason Ekstrand [Fri, 21 Feb 2020 17:29:06 +0000 (11:29 -0600)]
intel/fs: Add an option to use dataport messages for UBOs

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

3 years agointel/fs: Add an alignment to VARYING_PULL_CONSTANT_LOAD_LOGICAL
Jason Ekstrand [Fri, 21 Feb 2020 16:59:38 +0000 (10:59 -0600)]
intel/fs: Add an alignment to VARYING_PULL_CONSTANT_LOAD_LOGICAL

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

3 years agoi965: Take an isl_format in emit_buffer_surface_state
Jason Ekstrand [Thu, 20 Feb 2020 22:51:35 +0000 (16:51 -0600)]
i965: Take an isl_format in emit_buffer_surface_state

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

3 years agointel/dev: fix 32bit build issue
Lionel Landwerlin [Wed, 7 Oct 2020 19:21:23 +0000 (22:21 +0300)]
intel/dev: fix 32bit build issue

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7049>

3 years agointel/nir: Lower load_global_constant in lower_mem_access_bit_sizes
Jason Ekstrand [Tue, 6 Oct 2020 17:31:52 +0000 (12:31 -0500)]
intel/nir: Lower load_global_constant in lower_mem_access_bit_sizes

It's identical to nir_intrinsic_load_global except that it works on data
that's guaranteed to be constant throughout the shader invocation.

Fixes: ff2f44d86585 "intel/fs: Implement nir_intrinsic_load_global_constant"
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6872>

3 years agointel/nir: Don't try to emit vector load_scratch instructions
Jason Ekstrand [Thu, 24 Sep 2020 21:28:56 +0000 (16:28 -0500)]
intel/nir: Don't try to emit vector load_scratch instructions

In 53bfcdeecf4c9, we added load/store_scratch instructions which deviate
a little bit from most memory load/store instructions in that we can't
use the normal untyped read/write instructions which can read and write
up to a vec4 at a time.  Instead, we have to use the DWORD scattered
read/write instructions which are scalar.  To handle this, we added code
to brw_nir_lower_mem_access_bit_sizes to cause them to be scalarized.
However, one case was missing: the load-as-larger-vector case.  In this
case, we take small bit-sized constant-offset loads replace it with a
32-bit load and shuffle the result around as needed.

For scratch, this case is much trickier to get right because it often
emits vec2 or wider which we would then have to lower again.  We did
this for other load and store ops because, for lower bit-sizes we have
to scalarize thanks to the byte scattered read/write instructions being
scalar.  However, for scratch we're not losing as much because we can't
vectorize 32-bit loads and stores either.  It's easier to just disallow
it whenever we have to scalarize.

Fixes: 53bfcdeecf4c9 "intel/fs: Implement the new load/store_scratch..."
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6872>

3 years agoci: enable piglit testing of clover/llvmpipe.
Dave Airlie [Mon, 28 Sep 2020 22:40:13 +0000 (08:40 +1000)]
ci: enable piglit testing of clover/llvmpipe.

This adds support for building clover/llvmpipe and running the
piglit CL tests on it.

It uses the gl testing container, and add builds the libclc
spirv libraries as part of that which requires the llvm spirv
translator in the build container.

It also builds the llvm spirv translator as part of the build
root and creates a mesa build that builds clover for testing
against it. It uses llvm 10 as the baseline.

This drops bswap as it has an oob memory access with llvmpipe
which cause flaky test results. phatk also seems flaky

Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6901>

3 years agoCI: Don't run pixmark-piano twice on radeonsi
Daniel Stone [Wed, 7 Oct 2020 22:05:10 +0000 (23:05 +0100)]
CI: Don't run pixmark-piano twice on radeonsi

For some reason, the radeonsi Tracie definition had the piano traces
listed twice.

Noted by @airlied

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

3 years agospirv: Move nir_lower_libclc to src/compiler/spirv
Jason Ekstrand [Wed, 7 Oct 2020 03:14:59 +0000 (22:14 -0500)]
spirv: Move nir_lower_libclc to src/compiler/spirv

This puts it in a shared place where everyone can get at it.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7034>

3 years agoclover: Use core libclc loader
Dave Airlie [Tue, 6 Oct 2020 23:01:43 +0000 (09:01 +1000)]
clover: Use core libclc loader

v2 (Jason Ekstrand):
 - Use the newly added nir_can_find_libclc() helper

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7034>

3 years agospirv: Add a shared libclc loader
Jason Ekstrand [Tue, 6 Oct 2020 16:26:07 +0000 (11:26 -0500)]
spirv: Add a shared libclc loader

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7034>

3 years agomeson: generalize libclc usage
Dylan Baker [Tue, 6 Oct 2020 17:28:34 +0000 (10:28 -0700)]
meson: generalize libclc usage

So that it's not tied directly to clover.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7034>

3 years agoclover/meson: use dep.get_variable instead of deprecated get_pkgconfig_variable
Dylan Baker [Tue, 6 Oct 2020 17:25:18 +0000 (10:25 -0700)]
clover/meson: use dep.get_variable instead of deprecated get_pkgconfig_variable

Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7034>

3 years agoutil/xxd.py: Add an option for binary files
Jason Ekstrand [Wed, 7 Oct 2020 17:40:42 +0000 (12:40 -0500)]
util/xxd.py: Add an option for binary files

If -b is specified, we don't add a null to the end of the char array.
If -b is not specified, we assert that there are no nulls in the middle.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7034>

3 years agoutil: Make xxd.py output char array instead of string
Jesse Natalie [Tue, 31 Mar 2020 21:51:26 +0000 (14:51 -0700)]
util: Make xxd.py output char array instead of string

This keeps us from hitting the 65k string limit on MSVC

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

3 years agoutil: Move xxd.py to util
Jesse Natalie [Tue, 31 Mar 2020 21:05:59 +0000 (14:05 -0700)]
util: Move xxd.py to util

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7034>

3 years agoglsl/xxd.py: fix imports
Dylan Baker [Tue, 6 Oct 2020 17:25:46 +0000 (10:25 -0700)]
glsl/xxd.py: fix imports

sys and string are unused, os is needed but not imported

fixes: 412472da5cb30b603e218b34893936cc70039ded
       ("glsl: Add utility to convert text files to C strings")

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7034>

3 years agogallium/pipe: Add a GALLIUM_PIPE_SEARCH_DIR override env var
Jason Ekstrand [Tue, 18 Aug 2020 16:59:19 +0000 (11:59 -0500)]
gallium/pipe: Add a GALLIUM_PIPE_SEARCH_DIR override env var

This can be useful if you rsync an install between two machines and the
paths don't perfectly match up.  OpenGL drivers already work fine but
anything which uses pipe-loader has a compile-time path.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7047>

3 years agoiris: Fill out compute caps and enable clover support
Jason Ekstrand [Thu, 20 Aug 2020 22:10:59 +0000 (17:10 -0500)]
iris: Fill out compute caps and enable clover support

This commit enables clover support for iris.  It is intended as a
compiler developer tool and not as a new OpenCL implementation from
Intel.  If you want competent OpenCL, we have a different open-source
driver for that built on our LLVM-based IGC compiler stack.  However,
using clover with iris is becoming increasingly useful as a compiler
development tool and I'm getting tired of carrying the patches in a
private branch.

By default, clover will not initialize on iris.  To enable clover, set
the IRIS_ENABLE_CLOVER environment variable to "1" or "true".  As we've
done with the semi-sketchy platform support in ANV, it dumps a very loud
WARNING to stderr when enabled.  Use at your own risk.

NOTE: To anyone intending to benchmark this, the performance is going to
be terrible and that is expected.  This is in no way representative of
the Intel/NIR compiler stack.  As it currently stands, clover passes
-O0 to clang when compiling OpenCL C to make SPIRV-LLVM-Transator work.
When compiling the SPIR-V, clover currently doesn't run any NIR
optimizations before it lowers memory access so any NIR optimizations
iris attempts to do are severely hampered.  One day, clover will get a
NIR optimization loop or the ability to hand things off to the driver
per-lowering but today is not that day.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7047>

3 years agoiris: Add support for load_work_dim as a system value
Jason Ekstrand [Tue, 6 Oct 2020 23:06:05 +0000 (18:06 -0500)]
iris: Add support for load_work_dim as a system value

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7047>

3 years agoiris: Handle runtime-specified local memory size
Jason Ekstrand [Tue, 6 Oct 2020 20:57:21 +0000 (15:57 -0500)]
iris: Handle runtime-specified local memory size

The value specified in pipe_compute_state is in addition to the implicit
value computed by NIR.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7047>

3 years agoiris: Add pipe-loader support
Jason Ekstrand [Mon, 10 Aug 2020 23:33:46 +0000 (18:33 -0500)]
iris: Add pipe-loader support

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7047>

3 years agobroadcom/compiler: add V3D_DEBUG_RA option
Alejandro Piñeiro [Fri, 2 Oct 2020 12:20:07 +0000 (14:20 +0200)]
broadcom/compiler: add V3D_DEBUG_RA option

To ask to debug a registr allocation failure
(V3D_DEBUG_REGISTER_ALLOCATION seemed too long to me).

When a fallback register allocation algorithm was added, if the
register allocation fails, it only dumpg the current vir with the
register pressure info with the failed fallback. But if we want do
debug the problem, we would be interested on both.

Additionally, it was strange that we got the full vir dump with the
failure even if no debug option was set.

Additionally we add shaderdb like stats for those failures, to make
easier to compare one and the other.

v2: keep a small warning message in case both register allocation
    algorithms fails (Neil)

Reviewed-by: Neil Roberts <nroberts@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6999>

3 years agobroadcom/common: increase V3D_MAX_TEXTURE_SAMPLERS, add specific OpenGL limit
Alejandro Piñeiro [Thu, 20 Aug 2020 09:51:41 +0000 (11:51 +0200)]
broadcom/common: increase V3D_MAX_TEXTURE_SAMPLERS, add specific OpenGL limit

This is needed due Vulkan because by spec (31.1. Limit Requirements)
the minimum value for the following limits are the following ones:
  maxPerStageDescriptorSampledImages 16
  maxPerStageDescriptorStorageImages  4
  maxPerStageDescriptorInputAttachments 4

And we are using v3d textures for all of them, so current limit would
not be enough for some cases.

Note that as the current comment explains there is not exactly a HW
limit for it, so we could bump to 32 for example, but let's just be
conservative and ask the minimum required.

It is worth to note that we needed to maintain the same value for the
OpenGL case, as it gets a register allocation failure on some GL
cases. We tried to fix that with small changes on the nir scheduler,
but we found that it would require some non-trivial effort to get it
done (that eventually we would need to).

Fixes tests like:
dEQP-VK.binding_model.descriptorset_random.sets16.constant.ubolimitlow.sbolimitlow.imglimitlow.noiub.uab.comp.noia.0

v2: keep the previous limit for Opengl (Eric)

Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6999>

3 years agoaco/isel: Fix out-of-bounds write in visit_load_input
Tony Wasserka [Mon, 14 Sep 2020 17:39:43 +0000 (19:39 +0200)]
aco/isel: Fix out-of-bounds write in visit_load_input

Shaders may read out components past the attributes provided by the
application, so the read mask can indicate a larger component count than
were actually reserved in the array.

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6728>

3 years agoradv: Respect alignment requirements in descriptor set layouts
Tony Wasserka [Fri, 11 Sep 2020 15:50:00 +0000 (17:50 +0200)]
radv: Respect alignment requirements in descriptor set layouts

Previously, ycbcr samplers were tightly packed with 4-byte alignment,
but the structure requires 8-byte alignment. These samplers are now padded
to 8-byte boundaries instead.

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

3 years agoradv: Clean up CreateDescriptorSetLayout
Tony Wasserka [Wed, 2 Sep 2020 11:56:12 +0000 (13:56 +0200)]
radv: Clean up CreateDescriptorSetLayout

"max_bindings + 1" was repeatedly used throughout this function,
so talking about the binding *count* is more natural here.

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

3 years agoradv: Fix unaligned memory access when writing specialization map entries
Tony Wasserka [Tue, 15 Sep 2020 11:13:34 +0000 (13:13 +0200)]
radv: Fix unaligned memory access when writing specialization map entries

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

3 years agoradv: Avoid calling memcpy with null pointers
Tony Wasserka [Tue, 15 Sep 2020 11:07:16 +0000 (13:07 +0200)]
radv: Avoid calling memcpy with null pointers

Vulkan allows for these input pointers to be null when the respective
object count is zero. Calling memcpy with null pointers is undefined,
so they are guarded with a check for the legit use pattern now.

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

3 years agonir: Fix unaligned pointer access
Tony Wasserka [Tue, 15 Sep 2020 10:26:34 +0000 (12:26 +0200)]
nir: Fix unaligned pointer access

This was observed with the intel vulkan driver when running
dEQP-VK.spirv_assembly.instruction.compute.float32.comparison_1.modfstruct
with ubsan enabled.

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6728>

3 years agonir: Fix undefined behavior due to signed integer multiplication overflows
Tony Wasserka [Wed, 9 Sep 2020 10:22:44 +0000 (12:22 +0200)]
nir: Fix undefined behavior due to signed integer multiplication overflows

Notably this happened when applying constant folding on the intermediate
computations generated from nir_lower_idiv.

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6728>

3 years agoci: move to using clang 10 for meson + clover
Dave Airlie [Tue, 6 Oct 2020 00:49:00 +0000 (10:49 +1000)]
ci: move to using clang 10 for meson + clover

Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7017>

3 years agost/mesa: pass inlinable uniforms to drivers if they requested it
Marek Olšák [Tue, 29 Sep 2020 21:36:57 +0000 (17:36 -0400)]
st/mesa: pass inlinable uniforms to drivers if they requested it

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6955>

3 years agogallium: add pipe_context::set_inlinable_constants
Marek Olšák [Tue, 29 Sep 2020 21:35:47 +0000 (17:35 -0400)]
gallium: add pipe_context::set_inlinable_constants

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6955>

3 years agonir: add new helper passes that lower uniforms to literals
Marek Olšák [Tue, 29 Sep 2020 21:34:28 +0000 (17:34 -0400)]
nir: add new helper passes that lower uniforms to literals

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6955>

3 years agoutil: add _mesa_set_create_u32_keys where keys are not pointers
Marek Olšák [Tue, 29 Sep 2020 21:29:09 +0000 (17:29 -0400)]
util: add _mesa_set_create_u32_keys where keys are not pointers

the only limitation is that key=0 is not allowed

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6955>

3 years agopanfrost: Fix fixed-function blend on Mali v6
Boris Brezillon [Wed, 7 Oct 2020 12:37:56 +0000 (14:37 +0200)]
panfrost: Fix fixed-function blend on Mali v6

Mali v6 (G72) doesn't support constants in blend equations, let's use
a shader in that case.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6980>

3 years agopanfrost: XML-ify the blend descriptors
Boris Brezillon [Wed, 16 Sep 2020 11:31:37 +0000 (13:31 +0200)]
panfrost: XML-ify the blend descriptors

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6980>

3 years agopanfrost: Rework the render target layout to use overlapping structs
Boris Brezillon [Tue, 15 Sep 2020 23:06:28 +0000 (01:06 +0200)]
panfrost: Rework the render target layout to use overlapping structs

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6980>

3 years agopanfrost: Rework fixed-function blending
Boris Brezillon [Wed, 16 Sep 2020 08:26:06 +0000 (10:26 +0200)]
panfrost: Rework fixed-function blending

The fixed-function blend logic uses the following equation: A + B x C.
A, B and C are configurable and can be complemented with negation (for
A and B) or inversion (for C) modifiers. Let's rework the blending
code to take that into account.

Note that we need to update the checksum of a few traces because the
equations we use have changed, leading to small deviations on the
final images. Indeed, there are several valid options for a given GL
blend equation, but the operand selection probably has an impact on the
rounding, leading to those mismatch.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6980>

3 years agopanfrost: gen_pack: Add a no-direct-packing attribute
Boris Brezillon [Wed, 16 Sep 2020 07:16:04 +0000 (09:16 +0200)]
panfrost: gen_pack: Add a no-direct-packing attribute

To signify when a struct is not meant to be packed directly but should
instead be embedded in another struct.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6980>

3 years agopanfrost: gen_pack: Support overlapping structs
Boris Brezillon [Tue, 15 Sep 2020 16:27:18 +0000 (18:27 +0200)]
panfrost: gen_pack: Support overlapping structs

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6980>

3 years agopanfrost: gen_pack: Drop support for opaque structs
Boris Brezillon [Tue, 15 Sep 2020 16:11:29 +0000 (18:11 +0200)]
panfrost: gen_pack: Drop support for opaque structs

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6980>

3 years agopanfrost: Drop the with_opaque specifier on midgard blend desc
Boris Brezillon [Tue, 15 Sep 2020 16:07:42 +0000 (18:07 +0200)]
panfrost: Drop the with_opaque specifier on midgard blend desc

While at it, we also split the midgard and bifrost handling since
there's not much to share.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6980>

3 years agopanfrost: Get rid of the with_opaque qualifier on the renderer state desc
Boris Brezillon [Tue, 15 Sep 2020 15:03:28 +0000 (17:03 +0200)]
panfrost: Get rid of the with_opaque qualifier on the renderer state desc

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6980>

3 years agopanfrost: Adjust the renderer state definition
Boris Brezillon [Tue, 29 Sep 2020 13:47:04 +0000 (15:47 +0200)]
panfrost: Adjust the renderer state definition

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6980>

3 years agopanfrost: Adjust the primitive desc definition
Boris Brezillon [Tue, 29 Sep 2020 09:21:33 +0000 (11:21 +0200)]
panfrost: Adjust the primitive desc definition

Add missing fields and rename some of the existing ones.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6980>

3 years agopanfrost: Adjust the draw descriptor definition
Boris Brezillon [Tue, 29 Sep 2020 08:45:23 +0000 (10:45 +0200)]
panfrost: Adjust the draw descriptor definition

Add missing fields, and rename some of the existing fields.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6980>

3 years agonir/algebraic: always lower idiv to shifts if bitops are allowed
Marek Olšák [Thu, 1 Oct 2020 15:32:45 +0000 (11:32 -0400)]
nir/algebraic: always lower idiv to shifts if bitops are allowed

why would you want anything else

The only platform significantly affected by this is Intel where `lower_idiv`
is not set today but neither is `lower_bitops`.  There it seems to still be
a boon over-all.

Shader-db results on Ice Lake:

    total instructions in shared programs: 19719051 -> 19735766 (0.08%)
    instructions in affected programs: 106992 -> 123707 (15.62%)
    helped: 0
    HURT: 445
    HURT stats (abs)   min: 3 max: 295 x̄: 37.56 x̃: 44
    HURT stats (rel)   min: 0.16% max: 33.33% x̄: 19.60% x̃: 19.38%
    95% mean confidence interval for instructions value: 33.60 41.53
    95% mean confidence interval for instructions %-change: 18.97% 20.23%
    Instructions are HURT.

    total loops in shared programs: 5973 -> 5973 (0.00%)
    loops in affected programs: 0 -> 0
    helped: 0
    HURT: 0

    total cycles in shared programs: 489405810 -> 486917482 (-0.51%)
    cycles in affected programs: 4759097 -> 2270769 (-52.29%)
    helped: 406
    HURT: 34
    helped stats (abs) min: 2 max: 64661 x̄: 6291.95 x̃: 3126
    helped stats (rel) min: 0.02% max: 79.42% x̄: 43.32% x̃: 55.83%
    HURT stats (abs)   min: 2 max: 29376 x̄: 1947.12 x̃: 30
    HURT stats (rel)   min: 0.04% max: 23.82% x̄: 4.66% x̃: 1.33%
    95% mean confidence interval for cycles value: -6753.06 -4557.52
    95% mean confidence interval for cycles %-change: -42.60% -36.63%
    Cycles are helped.

    total spills in shared programs: 12481 -> 12482 (<.01%)
    spills in affected programs: 47 -> 48 (2.13%)
    helped: 0
    HURT: 1

    total fills in shared programs: 12816 -> 12819 (0.02%)
    fills in affected programs: 71 -> 74 (4.23%)
    helped: 0
    HURT: 1

    total sends in shared programs: 1010124 -> 1010124 (0.00%)
    sends in affected programs: 0 -> 0
    helped: 0
    HURT: 0

    LOST:   1
    GAINED: 0

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6963>

3 years agoglthread: handle glInterleavedArrays
Marek Olšák [Sat, 26 Sep 2020 00:14:53 +0000 (20:14 -0400)]
glthread: handle glInterleavedArrays

We need to enable and bind everything on the glthread side too.
The behavior was copied from _mesa_InterleavedArrays.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6874>

3 years agomesa: remove api_loopback to remove call indirections
Marek Olšák [Sat, 26 Sep 2020 09:21:03 +0000 (05:21 -0400)]
mesa: remove api_loopback to remove call indirections

This is an optimization for SPECviewperf.

The increase in lines of code is only 14%.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6874>

3 years agomesa: don't use GET_DISPATCH because it doesn't work with glthread
Marek Olšák [Sat, 26 Sep 2020 00:44:10 +0000 (20:44 -0400)]
mesa: don't use GET_DISPATCH because it doesn't work with glthread

GET_DISPATCH returns CurrentClientDispatch, which invokes glthread if
it's enabled. GL function implementations should never call back to
glthread.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6874>

3 years agoclover: move tokenize function to algorithm
Serge Martin [Sun, 27 Sep 2020 12:12:46 +0000 (14:12 +0200)]
clover: move tokenize function to algorithm

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4974>

3 years agoclover/spirv: support CL_KERNEL_COMPILE_WORK_GROUP_SIZE
Karol Herbst [Sun, 23 Aug 2020 14:46:05 +0000 (16:46 +0200)]
clover/spirv: support CL_KERNEL_COMPILE_WORK_GROUP_SIZE

Reviewed-by: Serge Martin <edb@sigluy.net>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4974>

3 years agoclover/spirv: parse arg_info
Karol Herbst [Sun, 23 Aug 2020 11:26:12 +0000 (13:26 +0200)]
clover/spirv: parse arg_info

Reviewed-by: Serge Martin <edb@sigluy.net>
Acked-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4974>

3 years agoclover: avoid adding an extra space to compiler options
Serge Martin [Sun, 21 Jun 2020 15:08:51 +0000 (17:08 +0200)]
clover: avoid adding an extra space to compiler options

This make CTS test_compiler happier

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4974>

3 years agoclover: implements notification callback on program builds
Serge Martin [Mon, 18 May 2020 17:59:13 +0000 (19:59 +0200)]
clover: implements notification callback on program builds

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4974>

3 years agoclover: implements clGetKernelWorkGroupInfo CL_KERNEL_COMPILE_WORK_GROUP_SIZE
Serge Martin [Sun, 27 Sep 2020 13:45:33 +0000 (15:45 +0200)]
clover: implements clGetKernelWorkGroupInfo CL_KERNEL_COMPILE_WORK_GROUP_SIZE

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4974>

3 years agoclover: add CL_KERNEL_ATTRIBUTES for clGetKernelInfo
Serge Martin [Sun, 23 Aug 2020 06:50:54 +0000 (08:50 +0200)]
clover: add CL_KERNEL_ATTRIBUTES for clGetKernelInfo

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4974>

3 years agoclover: bind sampler_t type to module::argument::sampler
Serge Martin [Sat, 9 May 2020 22:02:14 +0000 (00:02 +0200)]
clover: bind sampler_t type to module::argument::sampler

Reviewed-by: Pierre Moreau <dev@pmoreau.org>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4974>

3 years agoclover: implements clGetKernelArgInfo
Serge Martin [Sat, 9 May 2020 21:13:48 +0000 (23:13 +0200)]
clover: implements clGetKernelArgInfo

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4974>

3 years agoclover: implements clEnqueueFillImage
Serge Martin [Sat, 9 May 2020 10:29:39 +0000 (12:29 +0200)]
clover: implements clEnqueueFillImage

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4974>

3 years agoclover: implements clEnqueueMigrateMemObjects
Serge Martin [Sat, 9 May 2020 06:11:16 +0000 (08:11 +0200)]
clover: implements clEnqueueMigrateMemObjects

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4974>

3 years agoetnaviv: Make sure to track different pipe_screens for different DRM device descriptions
Daniel Abrecht [Sat, 19 Sep 2020 15:21:36 +0000 (15:21 +0000)]
etnaviv: Make sure to track different pipe_screens for different DRM device descriptions

pipe_screens that are created used to be dedublicated directly based on the gpu device file.
If a process created two of them, for example by opening the etnaviv render node twice
and calling `gbm_create_device`, or by opening two card nodes which used kmsro, or any
combination of these things, then for any but the first instance, the gem handles created
for it would be for the first one instead of the intended one, due to them being created
using the same pipe_screen, and buffers allocated for kmsro devices would be allocated using
the wrong file description as well. This can lead to various problems, such as a proccess not
being able to use two cards which use kmsro at the same time, for example.

This patch changes the dedublication to be done based on the gpu device description
rather than based on the gpu device file. This will solve the above mentioned problem,
but there will now be only a few cases in which anything is dedublicated at all.

Signed-off-by: Daniel Abrecht <public@danielabrecht.ch>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6790>

3 years agopanfrost: Fix a warning
Boris Brezillon [Fri, 2 Oct 2020 13:08:04 +0000 (15:08 +0200)]
panfrost: Fix a warning

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7040>

3 years agopanfrost: bifrost: disassemble: Fix decoding of next_regs
Boris Brezillon [Wed, 7 Oct 2020 06:42:00 +0000 (08:42 +0200)]
panfrost: bifrost: disassemble: Fix decoding of next_regs

next_regs decoding is wrong for the first and last instructions in a
clause:
- the first instruction has its destination encoded in the second reg
  block
- the last instruction has its destination encoded in the first reg block
  (things wrap around)

So, only the last instruction should pass first=true when decoding
next_regs. Fix that by passing the is_last_instruction information
instead of is_first_instruction to the disasm helpers.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7040>

3 years agoradv: remove trailing whitespace
Rhys Perry [Wed, 7 Oct 2020 09:59:36 +0000 (10:59 +0100)]
radv: remove trailing whitespace

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

3 years agoaco: remove trailing whitespace
Rhys Perry [Wed, 7 Oct 2020 09:59:07 +0000 (10:59 +0100)]
aco: remove trailing whitespace

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

3 years agoaco: more uses of nir_get_io_offset_src()
Samuel Pitoiset [Mon, 5 Oct 2020 09:30:39 +0000 (11:30 +0200)]
aco: more uses of nir_get_io_offset_src()

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

3 years agoaco: bail out if the NIR IO base offset isn't zero
Samuel Pitoiset [Mon, 5 Oct 2020 09:28:02 +0000 (11:28 +0200)]
aco: bail out if the NIR IO base offset isn't zero

nir_io_add_const_offset_to_base takes care of this.

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

3 years agoetnaviv: stop leaking the dummy texure descriptor BO
Lucas Stach [Fri, 11 Sep 2020 16:47:04 +0000 (18:47 +0200)]
etnaviv: stop leaking the dummy texure descriptor BO

Free the dummy texture descriptor BO on context destroy.

Fixes: eda73d71277a (etnaviv: GC7000: Texture descriptors)
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Guido Günther <agx@sigxcpu.org>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Cc: <mesa-stable@lists.freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6986>

3 years agointel/uuid: use git-sha1/package for the driver UUID
Juan A. Suarez Romero [Tue, 17 Mar 2020 10:14:08 +0000 (10:14 +0000)]
intel/uuid: use git-sha1/package for the driver UUID

We can't read information from the loaded shared object because we have
different objects for Vulkan and OpenGL drivers, but we need to share
the same UUID for both.

Hence let's use SHA1 from the Git commit and package version.

v2: use also package version for the case of building from tarball (Eric)
v3: fix typos in comment (Tapani)

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Rohan Garg <rohan.garg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7025>

3 years agoiris: plumb device/driver UUID generators
Juan A. Suarez Romero [Thu, 26 Mar 2020 16:04:19 +0000 (17:04 +0100)]
iris: plumb device/driver UUID generators

Use the same generators as used in anv driver so both Vulkan and OpenGL
drivers can share the same external memory objects.

v2: removed extra parameter from function gen_uuid_compute_device_id

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Signed-off-by: Eleni Maria Stea <estea@igalia.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Rohan Garg <rohan.garg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7025>

3 years agointel: split driver/device UUID generators
Juan A. Suarez Romero [Wed, 7 Oct 2020 06:44:44 +0000 (09:44 +0300)]
intel: split driver/device UUID generators

We need Vulkan and GL to produce the same UUIDs. So move the generator
from ANV to a common code that can be shared by ANV and Iris driver.

v2: fix android build (Tapani)

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Rohan Garg <rohan.garg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7025>

3 years agoturnip: Enable support for KHR_incremental_present
Eduardo Lima Mitev [Sun, 13 Sep 2020 14:56:13 +0000 (16:56 +0200)]
turnip: Enable support for KHR_incremental_present

All bits should already be provided by wsi/common.

Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6704>

3 years agoomx/tizonia: fix build
Pierre-Eric Pelloux-Prayer [Tue, 6 Oct 2020 12:29:15 +0000 (14:29 +0200)]
omx/tizonia: fix build

Fixes: 24f2b0a8560 ("gallium/video: remove pipe_video_buffer.chroma_format")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3595
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7026>

3 years agogallium/util: remove empty file u_half.h
Marek Olšák [Sat, 19 Sep 2020 18:11:02 +0000 (14:11 -0400)]
gallium/util: remove empty file u_half.h

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6987>

3 years agogallium/util: remove redundant util_float_to_half_rtz
Marek Olšák [Fri, 18 Sep 2020 10:00:06 +0000 (06:00 -0400)]
gallium/util: remove redundant util_float_to_half_rtz

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6987>

3 years agoutil: remove util_float_to_half and util_half_to_float wrappers
Marek Olšák [Fri, 18 Sep 2020 09:53:56 +0000 (05:53 -0400)]
util: remove util_float_to_half and util_half_to_float wrappers

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6987>

3 years agoutil: move util_half_to_float code into _mesa_half_to_float_slow
Marek Olšák [Fri, 18 Sep 2020 09:48:05 +0000 (05:48 -0400)]
util: move util_half_to_float code into _mesa_half_to_float_slow

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6987>

3 years agoutil: implement F16C using inline assembly on x86_64
Marek Olšák [Fri, 18 Sep 2020 09:21:09 +0000 (05:21 -0400)]
util: implement F16C using inline assembly on x86_64

F16C: https://en.wikipedia.org/wiki/F16C

This also happens to fix bptc-float-modes on llvmpipe.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6987>

3 years agonir/constant_folding: init nir_const_value to zero
Samuel Pitoiset [Tue, 6 Oct 2020 16:58:45 +0000 (18:58 +0200)]
nir/constant_folding: init nir_const_value to zero

To avoid NIR validation failures.

Fixes: 9df1ff36781 ("nir/constant_folding: Use the builder")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7035>

3 years agolavapipe: drop dri,dricommon deps.
Dave Airlie [Tue, 6 Oct 2020 06:31:11 +0000 (16:31 +1000)]
lavapipe: drop dri,dricommon deps.

This would be a step towards building elsewhere.

Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7019>

3 years agointel: drop likely/unlikely around INTEL_DEBUG
Marcin Ślusarz [Mon, 14 Sep 2020 16:53:41 +0000 (18:53 +0200)]
intel: drop likely/unlikely around INTEL_DEBUG

It's included in declaration of INTEL_DEBUG.

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6732>

3 years agoanv: drop likely/unlikely around INTEL_DEBUG
Marcin Ślusarz [Mon, 14 Sep 2020 16:53:13 +0000 (18:53 +0200)]
anv: drop likely/unlikely around INTEL_DEBUG

It's included in declaration of INTEL_DEBUG.

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6732>

3 years agoi965: drop likely/unlikely around INTEL_DEBUG
Marcin Ślusarz [Mon, 14 Sep 2020 16:52:02 +0000 (18:52 +0200)]
i965: drop likely/unlikely around INTEL_DEBUG

It's included in declaration of INTEL_DEBUG.

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6732>

3 years agoiris: drop likely/unlikely around INTEL_DEBUG
Marcin Ślusarz [Mon, 14 Sep 2020 16:49:43 +0000 (18:49 +0200)]
iris: drop likely/unlikely around INTEL_DEBUG

It's included in declaration of INTEL_DEBUG.

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6732>

3 years agointel: add INTEL_DEBUG expected value in declaration
Marcin Ślusarz [Mon, 14 Sep 2020 16:43:50 +0000 (18:43 +0200)]
intel: add INTEL_DEBUG expected value in declaration

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6732>

3 years agoanv: Add driconf option to disable compression for 16bpp format
Sagar Ghuge [Mon, 14 Sep 2020 22:52:11 +0000 (15:52 -0700)]
anv: Add driconf option to disable compression for 16bpp format

On Fallout4, enabling HIZ_CCS_WT compression for D16_UNORM format
regress the performance by 2%, in order to avoid that disable
compression via driconf option.

The experiment showed that, running Fallout4 with HIZ performs better
than HIZ_CCS and HIZ_CCS_WT. Reason behind that is the benchmark uses
the depth pass with D16_UNORM surfaces format which fills the L3 cache
and next pass doesn't make use of it where we end up clearing cache.

v2:
- Don't add conditional check in isl (Nanley, Jason)
- Move disable_d16unorm_compression flag to instance (Lionel)
- Use plane_format.isl_format (Nanley)

v3:
- Add more descriptive comment (Marcin Ślusarz)

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6734>

3 years agoanv: Factor out dri option initialization code in separate function
Sagar Ghuge [Mon, 14 Sep 2020 19:21:41 +0000 (12:21 -0700)]
anv: Factor out dri option initialization code in separate function

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6734>

3 years agoclover/nir: extract constant buffer into its own section
Karol Herbst [Wed, 2 Sep 2020 18:45:26 +0000 (20:45 +0200)]
clover/nir: extract constant buffer into its own section

Fixes test_basic constant_source

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6569>