mesa.git
4 years agospirv: handle OpCopyObject correctly with any types
Samuel Pitoiset [Tue, 5 May 2020 16:25:08 +0000 (18:25 +0200)]
spirv: handle OpCopyObject correctly with any types

This implements OpCopyObject as a blind copy and propagates the
access mask properly even if the source object type isn't a SSA
value.

This fixes some recent dEQP-VK.descriptor_indexing.* failures
since CTS changed and now apply nonUniformEXT after constructing
a combined image/sampler.

Original patch is from Jason Ekstrand.

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

4 years agoetnaviv: retarget transfer to render resource when necessary
Lucas Stach [Thu, 14 May 2020 10:59:01 +0000 (12:59 +0200)]
etnaviv: retarget transfer to render resource when necessary

If we have a separate render resource, it may contain more up-to-date
data than what is available in the base resource, so we need to retarget
the transfer to this resource. As the most likely reason for the
existence of the render resource is a multi-tiled render layout we need
to allow this transfer to go through the resolve/blit copy path, as we
can't de-/tile those layouts in software.

Fixes: b96277653033 (etnaviv: rework compatible render base)
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5051>

4 years agointel: Store the aperture size in devinfo.
Rafael Antognolli [Thu, 14 May 2020 18:44:29 +0000 (11:44 -0700)]
intel: Store the aperture size in devinfo.

We will later use the devinfo from iris_bufmgr, where we don't have
access to the screen pointer. And since we are moving it, we can reuse
it in Anv and i965.

v2: return error code and check for it on Anv (Lionel).
v3: Remove anv_gem_get_aperture() from anv_private.h and stubs (Lionel).

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

4 years agost/nine: Handle full pSourceRect better
Axel Davy [Sat, 9 May 2020 11:31:25 +0000 (13:31 +0200)]
st/nine: Handle full pSourceRect better

Some apps do set pSourceRect to the full area even if not needed.

Filtering out this case is helpful, as we currently do not handle
properly resizing (pDestRect or window size not of the size of the resource)
when pSourceRect is set. Indeed in this case pSourceRect needs to be modified
before being passed to the presentation backend.

Signed-off-by: Axel Davy <davyaxel0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5015>

4 years agost/nine: Ignore pDirtyRegion
Axel Davy [Sat, 9 May 2020 11:18:42 +0000 (13:18 +0200)]
st/nine: Ignore pDirtyRegion

We supported it, but it's not much useful.
Besides it gets more complicated to handle right when
you support resizing before display.

Signed-off-by: Axel Davy <davyaxel0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5015>

4 years agost/nine: Improve pDestRect handling
Axel Davy [Sat, 9 May 2020 11:17:17 +0000 (13:17 +0200)]
st/nine: Improve pDestRect handling

pSourceRect and pDestRect allows to:
A) display a crop of the backbuffer
B) display the content in a subregion (after an offset)
C) resize the content before displaying

Before this patch, only features A and B were supported.
This patch adds C, but breaks A, which current support
relied on C not being implemented.

I think C is more important than A, and A can be added later.

Signed-off-by: Axel Davy <davyaxel0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5015>

4 years agost/nine: Retry allocations after freeing some space
Axel Davy [Fri, 8 May 2020 21:23:17 +0000 (23:23 +0200)]
st/nine: Retry allocations after freeing some space

Managed resources can be released whenever we need.
When we have an allocation failure, free them and retry.
Try also to flush the csmt queue in case there were some things released.

Signed-off-by: Axel Davy <davyaxel0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5015>

4 years agost/nine: Increase available GPU memory
Axel Davy [Fri, 8 May 2020 20:26:07 +0000 (22:26 +0200)]
st/nine: Increase available GPU memory

This patch caps to 4GB the limit of GPU memory accessible
only for 32bits build.
This would deserve some tests on windows, so we might change that
behaviour in the future. For example, it's possible that
GetAvailableTextureMem is capped to 4GB on 64bits build.

We cap to a bit less than 4GB, which might help
https://github.com/iXit/Mesa-3D/issues/323

In addition, increase from 80% to 95% the allocation limit above
which we fail allocating.

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

4 years agost/nine: Add missing NULL checks
Axel Davy [Thu, 7 May 2020 21:28:59 +0000 (23:28 +0200)]
st/nine: Add missing NULL checks

Ideally apps shouldn't make buggy calls.
Still if some do, let's avoid crashing.

Without this patch, if some calls are invalid,
for example if replaying a trace of a game needing
a lot of VRAM on a card with not much VRAM, it can
crash.

Signed-off-by: Axel Davy <davyaxel0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5015>

4 years agost/nine: Fix a crash if the state is not initialized
Axel Davy [Sun, 26 Jan 2020 19:40:00 +0000 (20:40 +0100)]
st/nine: Fix a crash if the state is not initialized

I don't remember exactly the conditions of the crash,
but I had a trace which was crashing in the gallium driver
before doing any rendering (something about viewports being not initialized).

It's not the first time we hit such a problem, so rather than investigating
that crash, I chose to just initialize every states at device creation.

Signed-off-by: Axel Davy <davyaxel0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5015>

4 years agost/nine: Fix uninitialized variable in BEM()
Axel Davy [Sun, 21 Jul 2019 08:33:29 +0000 (10:33 +0200)]
st/nine: Fix uninitialized variable in BEM()

tmp was not initialized.

Signed-off-by: Axel Davy <davyaxel0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5015>

4 years agost/nine: Improve return error code in CheckDeviceFormat
Axel Davy [Mon, 3 Jun 2019 22:37:28 +0000 (00:37 +0200)]
st/nine: Improve return error code in CheckDeviceFormat

This seems suspicious, but is better than what we currently do.

Signed-off-by: Axel Davy <davyaxel0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5015>

4 years agost/nine: Pass more adapter formats for CheckDepthStencilMatch
Axel Davy [Mon, 3 Jun 2019 22:24:15 +0000 (00:24 +0200)]
st/nine: Pass more adapter formats for CheckDepthStencilMatch

It seems CheckDepthStencilMatch should accept A8R8G8B8
as adapter format. Given the lack of clarity of the doc
relative to the difference between display format
and adapter format (== display format modulo alpha bits),
for now just accept display formats with and without alpha bits.

Fixes: https://github.com/iXit/Mesa-3D/issues/317
Signed-off-by: Axel Davy <davyaxel0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5015>

4 years agost/nine: Do not return invalidcall on getrenderstate
Axel Davy [Mon, 3 Jun 2019 20:22:59 +0000 (22:22 +0200)]
st/nine: Do not return invalidcall on getrenderstate

To be fair I don't remember why I wrote this patch,
but it seems reasonable.

Signed-off-by: Axel Davy <davyaxel0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5015>

4 years agost/nine: Return error when setting invalid depth buffer
Axel Davy [Tue, 28 May 2019 20:47:44 +0000 (22:47 +0200)]
st/nine: Return error when setting invalid depth buffer

Prevents a crash with the trace of
https://github.com/iXit/wine-nine-standalone/issues/40

Signed-off-by: Axel Davy <davyaxel0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5015>

4 years agost/nine: Add checks for pure device
Axel Davy [Wed, 24 Oct 2018 21:28:28 +0000 (23:28 +0200)]
st/nine: Add checks for pure device

Some Get* functions are forbidden for pure device.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5015>

4 years agozink: implement i2b1
Erik Faye-Lund [Fri, 15 May 2020 10:05:11 +0000 (12:05 +0200)]
zink: implement i2b1

This shuold really have been implemented before starting to use these,
but I guess I missed them.

Fixes a crash when starting a game in Warzone 2100.

Fixes: 7f6a491eec0 ("zink: lower b2b to b2i")
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5053>

4 years agoutil/rand_xor: use getrandom() when available
Emmanuel Gil Peyrot [Wed, 18 Sep 2019 11:20:57 +0000 (13:20 +0200)]
util/rand_xor: use getrandom() when available

This function has been added in glibc 2.25, and the related syscall in
Linux 3.17, in order to avoid requiring the /dev/urandom to exist, and
doing the open()/read()/close() dance on it.

We pass GRND_NONBLOCK so that it doesn’t block if not enough entropy has
been gathered to initialise the /dev/urandom source, and fallback to the
next source in any error case.

Signed-off-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2026>

4 years agozink: mark depth-component cube-maps as done
Erik Faye-Lund [Thu, 14 May 2020 19:02:57 +0000 (21:02 +0200)]
zink: mark depth-component cube-maps as done

This worked fine all along, nothing to be done for this feature. The
piglit tests mostly pass.

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

4 years agonir: Use 8-bit types for most info fields
Jason Ekstrand [Thu, 14 May 2020 19:50:52 +0000 (14:50 -0500)]
nir: Use 8-bit types for most info fields

This shrinks nir_intrinsics.c.o from 73K to 35K and nir_opcodes.c.o from
64K to 31K on a release build.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5045>

4 years agoradv: Implement VK_EXT_custom_border_color
Joshua Ashton [Tue, 7 Apr 2020 05:11:24 +0000 (06:11 +0100)]
radv: Implement VK_EXT_custom_border_color

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4877>

4 years agoradv: Provide a better error for permission issues with priorities.
Bas Nieuwenhuizen [Wed, 29 Apr 2020 21:13:17 +0000 (23:13 +0200)]
radv: Provide a better error for permission issues with priorities.

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

4 years agofreedreno/uuid: Generate meaningful device and driver UUID
Eduardo Lima Mitev [Wed, 13 May 2020 10:57:43 +0000 (12:57 +0200)]
freedreno/uuid: Generate meaningful device and driver UUID

Device UUID becomes SHA1('freedreno' + gpu_id).
Driver UUID becomes SHA1(mesa-version + git-head-sha1).

v2: Don't use build_id for driver UUID since it generates different
    values for vulkan and gl shared objects. (Kristian)

Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4847>

4 years agofreedreno: Centralize UUID generation into new files freedreno_uuid.c/h
Eduardo Lima Mitev [Thu, 9 Apr 2020 10:56:08 +0000 (12:56 +0200)]
freedreno: Centralize UUID generation into new files freedreno_uuid.c/h

The new files are created under a 'common' folder under 'src/freedreno',
where shared functionality between GL and Vulkan drivers (that is not
registers, layout or compiler) will be placed.

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

4 years agoaco: split operations that use a swap's definition
Rhys Perry [Thu, 7 May 2020 15:26:42 +0000 (16:26 +0100)]
aco: split operations that use a swap's definition

Instead of relying it's read being entirely within the swap's definition.

No shader-db changes.

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

4 years agotu: Advertise COLOR_ATTACHMENT_BLEND_BIT for blendable formats
Connor Abbott [Thu, 14 May 2020 10:34:53 +0000 (12:34 +0200)]
tu: Advertise COLOR_ATTACHMENT_BLEND_BIT for blendable formats

Whoops. After fixing dual-source blending, dEQP-VK.pipeline.blend.* all
go from skipped to pass, and fixes a bunch of
dEQP-VK.api.info.format_properties.* tests where blending is required.

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

4 years agotu: Implement dual-src blending
Connor Abbott [Thu, 14 May 2020 15:17:46 +0000 (17:17 +0200)]
tu: Implement dual-src blending

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

4 years agotu: Move RENDER_COMPONENTS setting to pipeline state
Connor Abbott [Thu, 14 May 2020 14:41:02 +0000 (16:41 +0200)]
tu: Move RENDER_COMPONENTS setting to pipeline state

This needs to be pipeline state because it can change when dual-source
blending is active.

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

4 years agoir3: Fixup dual-source blending slot
Connor Abbott [Thu, 14 May 2020 14:11:58 +0000 (16:11 +0200)]
ir3: Fixup dual-source blending slot

The hardware expects that where MRT0 and MRT1 would normally go are the
dual sources for MRT0, whereas GLSL has an extra "index" parameter that
indicates which source it is. Remap it when handling FS outputs.

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

4 years agofreedreno/a6xx: Document dual-src blending enable bits
Connor Abbott [Thu, 14 May 2020 14:34:45 +0000 (16:34 +0200)]
freedreno/a6xx: Document dual-src blending enable bits

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

4 years agoRevert "nir/validate: validate the stride for deref_ptr_as_array"
Karol Herbst [Thu, 14 May 2020 17:36:43 +0000 (17:36 +0000)]
Revert "nir/validate: validate the stride for deref_ptr_as_array"

This reverts commit 667e14e7bd759a77e732c4de09fb978ee3816eaf

4 years agodocs: update calendar, add news item, and link releases notes for 20.0.7
Dylan Baker [Thu, 14 May 2020 17:14:53 +0000 (10:14 -0700)]
docs: update calendar, add news item, and link releases notes for 20.0.7

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

4 years agodocs/relnotes Add sha256 sums to 20.0.7
Dylan Baker [Thu, 14 May 2020 17:09:24 +0000 (10:09 -0700)]
docs/relnotes Add sha256 sums to 20.0.7

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

4 years agodocs: Add release notes for 20.0.7
Dylan Baker [Thu, 14 May 2020 16:38:57 +0000 (09:38 -0700)]
docs: Add release notes for 20.0.7

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

4 years agointel: Silence unused parameter warning in __intel_log_use_args
Ian Romanick [Mon, 11 May 2020 20:10:52 +0000 (13:10 -0700)]
intel: Silence unused parameter warning in __intel_log_use_args

...in every file that includes intel_log.h.

In file included from src/intel/vulkan/anv_private.h:93,
                 from src/intel/vulkan/genX_cmd_buffer.c:27:
src/intel/common/intel_log.h: In function ‘__intel_log_use_args’:
src/intel/common/intel_log.h:75:34: warning: unused parameter ‘format’ [-Wunused-parameter]

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

4 years agoanv: Silence unused parameter warning in anv_image_get_clear_color_addr
Ian Romanick [Mon, 11 May 2020 20:09:17 +0000 (13:09 -0700)]
anv: Silence unused parameter warning in anv_image_get_clear_color_addr

...in every file that includes anv_private.h.

In file included from src/intel/vulkan/genX_cmd_buffer.c:27:
src/intel/vulkan/anv_private.h: In function ‘anv_image_get_clear_color_addr’:
src/intel/vulkan/anv_private.h:3690:57: warning: unused parameter ‘device’ [-Wunused-parameter]

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

4 years agoanv/tests: Silence unused parameter warnings in main
Ian Romanick [Mon, 11 May 2020 20:06:56 +0000 (13:06 -0700)]
anv/tests: Silence unused parameter warnings in main

src/intel/vulkan/tests/block_pool_no_free.c: In function ‘main’:
src/intel/vulkan/tests/block_pool_no_free.c:147:14: warning: unused parameter ‘argc’ [-Wunused-parameter]
src/intel/vulkan/tests/block_pool_no_free.c:147:27: warning: unused parameter ‘argv’ [-Wunused-parameter]

src/intel/vulkan/tests/block_pool_grow_first.c: In function ‘main’:
src/intel/vulkan/tests/block_pool_grow_first.c:27:14: warning: unused parameter ‘argc’ [-Wunused-parameter]
src/intel/vulkan/tests/block_pool_grow_first.c:27:27: warning: unused parameter ‘argv’ [-Wunused-parameter]

src/intel/vulkan/tests/state_pool.c: In function ‘main’:
src/intel/vulkan/tests/state_pool.c:36:14: warning: unused parameter ‘argc’ [-Wunused-parameter]
src/intel/vulkan/tests/state_pool.c:36:27: warning: unused parameter ‘argv’ [-Wunused-parameter]

src/intel/vulkan/tests/state_pool_padding.c: In function ‘main’:
src/intel/vulkan/tests/state_pool_padding.c:27:14: warning: unused parameter ‘argc’ [-Wunused-parameter]
src/intel/vulkan/tests/state_pool_padding.c:27:27: warning: unused parameter ‘argv’ [-Wunused-parameter]

src/intel/vulkan/tests/state_pool_no_free.c: In function ‘main’:
src/intel/vulkan/tests/state_pool_no_free.c:115:14: warning: unused parameter ‘argc’ [-Wunused-parameter]
src/intel/vulkan/tests/state_pool_no_free.c:115:27: warning: unused parameter ‘argv’ [-Wunused-parameter]

src/intel/vulkan/tests/state_pool_free_list_only.c: In function ‘main’:
src/intel/vulkan/tests/state_pool_free_list_only.c:35:14: warning: unused parameter ‘argc’ [-Wunused-parameter]
src/intel/vulkan/tests/state_pool_free_list_only.c:35:27: warning: unused parameter ‘argv’ [-Wunused-parameter]

v2: Use 'int main(void)' instead.  Suggested by Jason.

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

4 years agoanv/tests: Don't rely on assert or changing NDEBUG in tests
Ian Romanick [Mon, 11 May 2020 19:33:24 +0000 (12:33 -0700)]
anv/tests: Don't rely on assert or changing NDEBUG in tests

This is the last part of the fix for #2903.

v2: Add test_common.h.

Fixes: f7c56475d25 ("anv/tests: compile to something sensible in release builds")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4994>

4 years agoaco: fix WQM coalescing
Daniel Schürmann [Thu, 14 May 2020 11:40:55 +0000 (12:40 +0100)]
aco: fix WQM coalescing

get_reg_specified() doesn't handle special registers like SCC.
Fixes: a5fc96b533418dc2d68f17f3f19ac5f82d59b978 ('aco: coalesce parallelcopies during register allocation')
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5036>

4 years agoanv: Fix descriptor set clean-up on BO allocation failure
Jason Ekstrand [Thu, 14 May 2020 03:57:46 +0000 (22:57 -0500)]
anv: Fix descriptor set clean-up on BO allocation failure

This was a bit of rebase fail when writing 682c81bdfb.  We stopped
freeing descriptor sets back to the pool and started calling
vk_object_base_finish.  This commit reverts a that hunk should have
never made its way into the final patch.

Fixes: 682c81bdfb "vulkan,anv: Add a base object struct type"
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Tested-by: Mark Janes <mark.a.janes@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5032>

4 years agoanv: Call vk_object_base_finish for image views
Jason Ekstrand [Wed, 13 May 2020 21:26:22 +0000 (16:26 -0500)]
anv: Call vk_object_base_finish for image views

Fixes: 682c81bdfb7 "vulkan,anv: Add a base object struct type"
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5032>

4 years agozink: correct PIPE_SHADER_CAP_MAX_SHADER_IMAGES
Erik Faye-Lund [Wed, 13 May 2020 15:13:47 +0000 (17:13 +0200)]
zink: correct PIPE_SHADER_CAP_MAX_SHADER_IMAGES

We don't support shader-images yet, so this is premature to expose.

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

4 years agozink: do not expose real value for PIPE_CAP_MAX_VIEWPORTS
Erik Faye-Lund [Wed, 13 May 2020 12:40:47 +0000 (14:40 +0200)]
zink: do not expose real value for PIPE_CAP_MAX_VIEWPORTS

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

4 years agometa: Remove support for multisample blits
Ian Romanick [Thu, 15 Jun 2017 21:47:54 +0000 (14:47 -0700)]
meta: Remove support for multisample blits

Since i965 no longer uses this function for blitting color buffers,
there is no driver left that will ever support multisample textures and
use _mesa_meta_BlitFramebuffer.

v2: Delete blit_state::msaa_shaders and enum blit_msaa_shader.

   text     data     bss      dec    hex  filename
12243286 1344936 1290748 14878970 e308fa  before/lib64/dri/i965_dri.so
12240398 1344936 1290748 14876082 e2fdb2  after/lib64/dri/i965_dri.so

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

4 years agometa: Coalesce the GLSL and FF paths in meta_clear
Ian Romanick [Fri, 2 Jun 2017 23:29:20 +0000 (16:29 -0700)]
meta: Coalesce the GLSL and FF paths in meta_clear

   text     data     bss      dec    hex  filename
12243286 1344936 1290748 14878970 e308fa  before/lib64/dri/i965_dri.so
12243286 1344936 1290748 14878970 e308fa  after/lib64/dri/i965_dri.so

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

4 years agometa: Use same vertex coordinates for GLSL and FF clears
Ian Romanick [Fri, 2 Jun 2017 23:21:25 +0000 (16:21 -0700)]
meta: Use same vertex coordinates for GLSL and FF clears

   text     data     bss      dec    hex  filename
12243446 1344936 1290748 14879130 e3099a  before/lib64/dri/i965_dri.so
12243286 1344936 1290748 14878970 e308fa  after/lib64/dri/i965_dri.so

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

4 years agometa: Stop frobbing MatrixMode
Ian Romanick [Fri, 2 Jun 2017 23:15:52 +0000 (16:15 -0700)]
meta: Stop frobbing MatrixMode

   text     data     bss      dec    hex  filename
12243510 1344936 1290748 14879194 e309da  before/lib64/dri/i965_dri.so
12243446 1344936 1290748 14879130 e3099a  after/lib64/dri/i965_dri.so

v2: Use _mesa_load_matrix to set the projection matrix instead of
frobbing dirty bits directly.  Suggested by Jason.  Clean up some
comments in the neighborhood.  Since glOrtho isn't called, there's no
point in mentioning it in the comment.  Only _mesa_load_identity_matrix
on the projection matrix when it isn't set to an ortho matrix.

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

4 years agomesa: Add function to calculate an orthographic projection
Ian Romanick [Tue, 28 Apr 2020 17:18:47 +0000 (10:18 -0700)]
mesa: Add function to calculate an orthographic projection

Unlike the existing _math_matrix_ortho, the new _math_float_ortho
function just stores the calculated matrix in an array of floats.  It
does not multiply the new matrix with data already stored.

   text     data     bss      dec    hex  filename
12243486 1344936 1290748 14879170 e309c2  before/lib64/dri/i965_dri.so
12243510 1344936 1290748 14879194 e309da  after/lib64/dri/i965_dri.so

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

4 years agomesa: Add matrix utility functions to load matrices
Ian Romanick [Fri, 2 Jun 2017 22:59:24 +0000 (15:59 -0700)]
mesa: Add matrix utility functions to load matrices

These are basically DSA versions of glLoadIdentity() and glLoadMatrix()
that are available for internal Mesa use.

   text     data     bss      dec    hex  filename
12243574 1344936 1290748 14879258 e30a1a  before/lib64/dri/i965_dri.so
12243486 1344936 1290748 14879170 e309c2  after/lib64/dri/i965_dri.so

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

4 years agometa: Remove support for clearing integer buffers
Ian Romanick [Thu, 15 Jun 2017 00:35:28 +0000 (17:35 -0700)]
meta: Remove support for clearing integer buffers

Since i965 no longer uses this function for clearing color buffers,
there is no driver left that will ever support integer textures and use
_mesa_meta_glsl_Clear.

As a side note, the has_integer_textures check was rubbish anyway
because meta always smashes the API to API_OPENGL_COMPAT.

   text     data     bss      dec    hex  filename
12244406 1344936 1290748 14880090 e30d5a  before/lib64/dri/i965_dri.so
12243574 1344936 1290748 14879258 e30a1a  after/lib64/dri/i965_dri.so

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

4 years agometa: Make _mesa_meta_setup_sampler static
Ian Romanick [Mon, 6 May 2019 22:45:47 +0000 (15:45 -0700)]
meta: Make _mesa_meta_setup_sampler static

   text     data     bss      dec    hex  filename
12244854 1344936 1290748 14880538 e30f1a  before/lib64/dri/i965_dri.so
12244406 1344936 1290748 14880090 e30d5a  after/lib64/dri/i965_dri.so

v2: Put static on the function definition too.  Suggested by Paulo.

v3: Reformat prototype.  Suggested by Jason.

Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> [v2]
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/856>

4 years agometa: Make _mesa_meta_texture_object_from_renderbuffer static
Ian Romanick [Mon, 6 May 2019 22:05:26 +0000 (15:05 -0700)]
meta: Make _mesa_meta_texture_object_from_renderbuffer static

   text     data     bss      dec    hex  filename
12244974 1344936 1290748 14880658 e30f92  before/lib64/dri/i965_dri.so
12244854 1344936 1290748 14880538 e30f1a  after/lib64/dri/i965_dri.so

v2: Put static on the function definition too.  Suggested by Paulo.

v3: Reformat prototype.  Suggested by Jason.

Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> [v2]
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/856>

4 years agoi965: Assert that blorp always handles color blits
Ian Romanick [Mon, 19 Jun 2017 18:10:38 +0000 (11:10 -0700)]
i965: Assert that blorp always handles color blits

Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/856>

4 years agonir/validate: validate the stride for deref_ptr_as_array
Karol Herbst [Thu, 5 Mar 2020 21:13:24 +0000 (22:13 +0100)]
nir/validate: validate the stride for deref_ptr_as_array

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

4 years agonir/deref: copy ptr_stride when rematerializing
Karol Herbst [Thu, 5 Mar 2020 21:35:10 +0000 (22:35 +0100)]
nir/deref: copy ptr_stride when rematerializing

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

4 years agotargets/opencl: fix build against LLVM>=10 with Polly support
Jan Palus [Fri, 10 Apr 2020 16:00:40 +0000 (18:00 +0200)]
targets/opencl: fix build against LLVM>=10 with Polly support

see https://bugs.llvm.org/show_bug.cgi?id=44870

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

4 years agofreedreno: Avoid duplicate BO relocs in FD_RINGBUFFER_OBJECTs.
Eric Anholt [Fri, 8 May 2020 21:53:47 +0000 (14:53 -0700)]
freedreno: Avoid duplicate BO relocs in FD_RINGBUFFER_OBJECTs.

For the piglit drawoverhead case, 5/18 of the objects' relocs were
duplicated.  We can dedupe them at object create time (since objects are
long-lived) and avoid repeated relocation work at emit time.

nohw drawoverhead program statechange throughput 2.34082% +/- 0.645832%
(n=10).

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

4 years agofreedreno: Fix resource layout dump loop.
Eric Anholt [Tue, 12 May 2020 21:41:53 +0000 (14:41 -0700)]
freedreno: Fix resource layout dump loop.

Apparently I've never dumped a fully populated slices array, so the 0-init
always terminated the loop.

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

4 years agozink: disable vkCmdResolveImage when respecting render-condition
Erik Faye-Lund [Tue, 12 May 2020 13:01:16 +0000 (15:01 +0200)]
zink: disable vkCmdResolveImage when respecting render-condition

vkCmdResolveImage doesn't respect render-condition, so let's fall back
to blitter in this case instead.

Fixes: 80d7cc6f129 ("zink: enable conditional rendering if available")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5008>

4 years agoanv: Fix deadlock in anv_timelines_wait
Danylo Piliaiev [Tue, 12 May 2020 09:27:58 +0000 (12:27 +0300)]
anv: Fix deadlock in anv_timelines_wait

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2945
Fixes: 34f32a6d6648073e2fda3fb78377124fb32bb288
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5005>

4 years agogitlab-ci: Install g++-mingw-w64-x86-64-win32 instead of mingw-w64
Michel Dänzer [Mon, 27 Apr 2020 16:46:32 +0000 (18:46 +0200)]
gitlab-ci: Install g++-mingw-w64-x86-64-win32 instead of mingw-w64

mingw-w64 pulls in a lot more packages we don't need.

g++-mingw-w64-x86-64-win32 is only available in Debian testing, so get
all mingw packages from there.

Acked-by: Andres Gomez <agomez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4851>

4 years agogitlab-ci: Move lib{drm,pciaccess}-dev cross packages out of loop
Michel Dänzer [Thu, 30 Apr 2020 07:28:04 +0000 (09:28 +0200)]
gitlab-ci: Move lib{drm,pciaccess}-dev cross packages out of loop

Simpler like this, since they're only needed for one cross architecture
each.

Acked-by: Andres Gomez <agomez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4851>

4 years agogitlab-ci: Install WINE from Debian testing
Michel Dänzer [Mon, 27 Apr 2020 10:42:58 +0000 (12:42 +0200)]
gitlab-ci: Install WINE from Debian testing

Instead of a third-party repository which has proved unreliable at
times.

This pulls in glibc 2.30 from testing in the x86_build image, so we need
to update the x86_test-{gl,vk} images to match.

Acked-by: Andres Gomez <agomez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4851>

4 years agogitlab-ci: Add Debian testing repository for x86_build image
Michel Dänzer [Fri, 8 May 2020 09:30:09 +0000 (11:30 +0200)]
gitlab-ci: Add Debian testing repository for x86_build image

We don't want LLVM 8 packages to be pulled in from testing though (it
would make installing llvm-8-dev for cross architectures a lot more
complicated), so explicitly select buster-backports for them (they were
already implicitly installed from there before, since they're not
available in buster proper).

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

4 years agogitlab-ci: Move down container_pre_build.sh invocation in x86_build.sh
Michel Dänzer [Thu, 30 Apr 2020 09:45:58 +0000 (11:45 +0200)]
gitlab-ci: Move down container_pre_build.sh invocation in x86_build.sh

It was in the middle of package installations.

Acked-by: Andres Gomez <agomez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4851>

4 years agogitlab-ci: Update to current templates
Michel Dänzer [Wed, 29 Apr 2020 16:47:08 +0000 (18:47 +0200)]
gitlab-ci: Update to current templates

Notable changes:

* No longer generate a separate *-built-by-job-* image tag, instead
  store the pipeline/job information as labels in the image.
* Clean up some package information files which were accidentally left
  before, possibly resulting in slightly smaller images.

Acked-by: Andres Gomez <agomez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4851>

4 years agozink. Changed sampler default name.
Duncan Hopkins [Wed, 25 Sep 2019 10:52:37 +0000 (11:52 +0100)]
zink. Changed sampler default name.

Changed the sampler variable name from 'sampler' to 'sampler_<num>' to stop symbol classes in the Metal MSL shaders, as 'sampler' is a keyword.
Improves human readability when debugging issues.

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4211>

4 years agoradv: enable shaderResourceMinLod
Samuel Pitoiset [Fri, 8 May 2020 17:26:19 +0000 (19:26 +0200)]
radv: enable shaderResourceMinLod

This feature was missing for unknown reasons.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4989>

4 years agoac/llvm: add support for texturing with clamped LOD
Samuel Pitoiset [Mon, 11 May 2020 14:51:33 +0000 (16:51 +0200)]
ac/llvm: add support for texturing with clamped LOD

This is a requirement for the shaderResourceMinLod feature which
allows to clamp LOD. This uses all image_sample_*_cl variants.

All dEQP-VK.glsl.texture_functions.texture*clamp.* pass.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4989>

4 years agoaco: add support for texturing with clamped LOD
Samuel Pitoiset [Mon, 11 May 2020 14:33:14 +0000 (16:33 +0200)]
aco: add support for texturing with clamped LOD

This is a requirement for the shaderResourceMinLod feature which
allows to clamp LOD. This uses all image_sample_*_cl variants.

All dEQP-VK.glsl.texture_functions.texture*clamp.* pass.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4989>

4 years agoaco: remove useless check for nir_tex_src_bias
Samuel Pitoiset [Mon, 11 May 2020 13:23:52 +0000 (15:23 +0200)]
aco: remove useless check for nir_tex_src_bias

I think only nir_texop_txb can have a bias operand anyways.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4989>

4 years agoCI: Windows: Build LLVM and llvmpipe
Daniel Stone [Tue, 5 May 2020 14:49:22 +0000 (15:49 +0100)]
CI: Windows: Build LLVM and llvmpipe

We will eventually need to build our own LLVM on Windows in order to
build libclc and other bits which are required for the d3d12 build, as
well as to be able to test SPIR-V/OpenCL on llvmpipe.

Start doing this now, building into the base container, and exercise
this by building llvmpipe under Windows.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4946>

4 years agollvmpipe: Expect increased exp precision on Windows
Daniel Stone [Thu, 16 Apr 2020 22:27:41 +0000 (23:27 +0100)]
llvmpipe: Expect increased exp precision on Windows

'Newer' versions of MSVCRT than 2013 appear to have fixed the bug around expf
precision which caused bb9e8c5090f0. It's not clear when this was
changed, but at least on Windows 10 machines with Visual Studio 2019,
expf behaves in line with other implementations.

As there is no clear way to test for the version of the VCRT in use,
simply mark this test as expected-pass rather than xfail.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4946>

4 years agofreedreno/ir3: use lower_wrmasks pass
Rob Clark [Wed, 6 May 2020 21:58:28 +0000 (14:58 -0700)]
freedreno/ir3: use lower_wrmasks pass

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
4 years agonir: add pass to lower disjoint wrmask's
Rob Clark [Wed, 6 May 2020 21:20:09 +0000 (14:20 -0700)]
nir: add pass to lower disjoint wrmask's

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
4 years agonir: add helper to copy const_index[]
Rob Clark [Wed, 6 May 2020 20:35:51 +0000 (13:35 -0700)]
nir: add helper to copy const_index[]

It seems less brittle to not assume they are in the same order for src
and dst instructions.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
4 years agonir: fix indices for ir3 ssbo_atomic intrinsics
Rob Clark [Wed, 6 May 2020 22:52:53 +0000 (15:52 -0700)]
nir: fix indices for ir3 ssbo_atomic intrinsics

Caught by the sanity checking in nir_intrinsic_copy_const_indices()
(which is introduced by the next patch).

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
4 years agofreedreno/ir3: use const_index accessors
Rob Clark [Wed, 6 May 2020 20:14:39 +0000 (13:14 -0700)]
freedreno/ir3: use const_index accessors

Cleans up a couple spots that were still open-coding this.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
4 years agofreedreno/ir3: Drop wrmask for ir3 local and global store intrinsics
Kristian H. Kristensen [Wed, 13 May 2020 20:19:57 +0000 (13:19 -0700)]
freedreno/ir3: Drop wrmask for ir3 local and global store intrinsics

These intrinsics are supposed to map to the underlying hardware
instructions, which don't have wrmask. We use them when we lower
store_output in the geometry pipeline and since store_output gets
lowered to temps, we always see full wrmasks there.

4 years agonir: Add some docs to the metadata types
Jason Ekstrand [Wed, 13 May 2020 18:29:43 +0000 (13:29 -0500)]
nir: Add some docs to the metadata types

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5028>

4 years agofreedreno: Fix attempts to push UBO contents past the constlen on pre-a6xx.
Eric Anholt [Wed, 13 May 2020 17:34:25 +0000 (10:34 -0700)]
freedreno: Fix attempts to push UBO contents past the constlen on pre-a6xx.

The binning variant likely won't have any UBO load code in it, so we were
writing past constlen (and sometimes asserting about it) when loading more
than one ubo block.

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

4 years agodocs: update calendar for 20.1.0-rc3
Eric Engestrom [Wed, 13 May 2020 17:29:02 +0000 (19:29 +0200)]
docs: update calendar for 20.1.0-rc3

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

4 years agopanfrost: Fix background showing when using discard
Icecream95 [Tue, 12 May 2020 02:08:09 +0000 (14:08 +1200)]
panfrost: Fix background showing when using discard

This fixes problems in a number of games, including SuperTuxKart,
OpenMW and RVGL.

v2: Use MALI_READS_ZS | 0x20 instead of MALI_WRITES_Z to match with
the blob. Keep using 0x400 | 0x20 when depth is disabled.

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

4 years agoanv: Translate relative timeout to absolute when calling anv_timelines_wait
Danylo Piliaiev [Wed, 13 May 2020 16:28:59 +0000 (19:28 +0300)]
anv: Translate relative timeout to absolute when calling anv_timelines_wait

Fixes: 34f32a6d6648073e2fda3fb78377124fb32bb288
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5025>

4 years agoanv: Set MOCS in 3DSTATE_CONSTANT_* on Gen9+
Jason Ekstrand [Wed, 13 May 2020 03:55:30 +0000 (22:55 -0500)]
anv: Set MOCS in 3DSTATE_CONSTANT_* on Gen9+

While we're here, we add a nice detailed comment about why always
assuming internal is ok.

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

4 years agoanv: Set 3DSTATE_VF_INSTANCING on the SVGS element
Jason Ekstrand [Wed, 13 May 2020 03:31:54 +0000 (22:31 -0500)]
anv: Set 3DSTATE_VF_INSTANCING on the SVGS element

It probably doesn't matter because that buffer should have a stride of
zero.  However, it still seems like a good idea just to be safe.

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

4 years agofreedreno: Drop the noubo fails list for CI, since there aren't any now.
Eric Anholt [Tue, 12 May 2020 23:36:08 +0000 (16:36 -0700)]
freedreno: Drop the noubo fails list for CI, since there aren't any now.

The remaining two fails in the list are the same as for the normal CI run.

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

4 years agofreedreno/a6xx: Use LDC for UBO loads.
Eric Anholt [Mon, 20 Apr 2020 23:39:54 +0000 (16:39 -0700)]
freedreno/a6xx: Use LDC for UBO loads.

It saves addressing math, but may cause multiple loads to be done and
bcseled due to NIR not giving us good address alignment information
currently.  I don't have any workloads I know of using non-const-uploaded
UBOs, so I don't have perf numbers for it

This makes us match the GLES blob's behavior, and turnip (other than being
bindful).

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

4 years agofreedreno: Trim num_ubos to just the ones we haven't lowered to constbuf.
Eric Anholt [Tue, 12 May 2020 23:07:50 +0000 (16:07 -0700)]
freedreno: Trim num_ubos to just the ones we haven't lowered to constbuf.

With the upcoming LDC usage in the GL driver, we don't want to be
uploading descriptors for every UBO when they aren't actually in use.
Trimming NIR's num_ubos will avoid that, and cleans up num_ubo handling
elsewhere right now.

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

4 years agofreedreno/ir3: Move i/o offset lowering after analyze_ubo_ranges.
Eric Anholt [Fri, 1 May 2020 23:00:17 +0000 (16:00 -0700)]
freedreno/ir3: Move i/o offset lowering after analyze_ubo_ranges.

I found that when moving more UBOs to load_ubo_ir3, analyze_ubo_ranges
would move things back in a broken way.  We can just run this pass later
and drop the _ir3 path.

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

4 years agofreedreno/ir3: Leave the cursor alone during ir3_nir_try_propagate_bit_shift.
Eric Anholt [Tue, 21 Apr 2020 00:14:53 +0000 (17:14 -0700)]
freedreno/ir3: Leave the cursor alone during ir3_nir_try_propagate_bit_shift.

Otherwise, we might end up inserting the nir_intrinsic_load_ubo_ir3()
after the non-offset src's definition, leading to nir_validate() failures.

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

4 years agofreedreno/ir3: Clean up a silly nir_src_for_ssa(src.ssa).
Eric Anholt [Mon, 20 Apr 2020 23:43:25 +0000 (16:43 -0700)]
freedreno/ir3: Clean up a silly nir_src_for_ssa(src.ssa).

Just copy the src through.

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

4 years agonir: Include num_ubos in the printed shader (if nonzero).
Eric Anholt [Tue, 12 May 2020 23:25:13 +0000 (16:25 -0700)]
nir: Include num_ubos in the printed shader (if nonzero).

I keep wanting this number for debugging shaders.

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

4 years agoutil/ra: Add [de]serialization support
Jason Ekstrand [Wed, 18 Sep 2019 19:57:11 +0000 (14:57 -0500)]
util/ra: Add [de]serialization support

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5019>

4 years agoutil/vma: Add a debug print helper
Jason Ekstrand [Thu, 12 Sep 2019 23:42:21 +0000 (18:42 -0500)]
util/vma: Add a debug print helper

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5019>

4 years agoutil/vma: Add an option to configure high/low preference
Jason Ekstrand [Thu, 29 Aug 2019 18:04:25 +0000 (13:04 -0500)]
util/vma: Add an option to configure high/low preference

The vma_heap allocator was originally designed to prefer high addresses
in order to find bugs in ANV's high address handling.  However, there
are cases where you might want the allocator to prefer lower addresses
for some reason.  This provides a configure bit for exactly this
purpose.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5019>

4 years agoutil/list: Add list_foreach_entry_from_safe
Caio Marcelo de Oliveira Filho [Tue, 17 Sep 2019 01:21:06 +0000 (18:21 -0700)]
util/list: Add list_foreach_entry_from_safe

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5019>

4 years agoutil/list: Add a list pair iterator
Jason Ekstrand [Mon, 5 Aug 2019 21:19:06 +0000 (16:19 -0500)]
util/list: Add a list pair iterator

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5019>

4 years agoanv: Implement VK_EXT_custom_border_color
Iván Briano [Thu, 23 Apr 2020 00:08:22 +0000 (17:08 -0700)]
anv: Implement VK_EXT_custom_border_color

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

4 years agoanv: Add a way to reserve states from a pool
Iván Briano [Thu, 23 Apr 2020 00:17:38 +0000 (17:17 -0700)]
anv: Add a way to reserve states from a pool

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