mesa.git
5 years agozink: prepare for shadow-samplers
Erik Faye-Lund [Thu, 20 Jun 2019 13:41:37 +0000 (15:41 +0200)]
zink: prepare for shadow-samplers

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: keep a reference to used render-passes
Erik Faye-Lund [Thu, 20 Jun 2019 13:29:20 +0000 (15:29 +0200)]
zink: keep a reference to used render-passes

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: pass screen instead of device to program-functions
Erik Faye-Lund [Thu, 20 Jun 2019 13:20:52 +0000 (15:20 +0200)]
zink: pass screen instead of device to program-functions

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: rename sampler-view destroy function
Erik Faye-Lund [Thu, 20 Jun 2019 10:11:15 +0000 (12:11 +0200)]
zink: rename sampler-view destroy function

This name is more consistent with other functions.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: clean up render-pass management
Erik Faye-Lund [Thu, 20 Jun 2019 10:03:59 +0000 (12:03 +0200)]
zink: clean up render-pass management

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: remove hack-comment
Erik Faye-Lund [Thu, 20 Jun 2019 10:03:20 +0000 (12:03 +0200)]
zink: remove hack-comment

This isn't a hack, it's how this *should* work.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: ensure sampler-views survive a batch
Erik Faye-Lund [Thu, 20 Jun 2019 09:41:02 +0000 (11:41 +0200)]
zink: ensure sampler-views survive a batch

we don't need to track the resources for the samplers any longer, as
the sampler view holds a reference instead.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: fixup parameter name
Erik Faye-Lund [Thu, 20 Jun 2019 09:39:43 +0000 (11:39 +0200)]
zink: fixup parameter name

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: use helper
Erik Faye-Lund [Thu, 20 Jun 2019 09:31:40 +0000 (11:31 +0200)]
zink: use helper

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: more batch-ism
Erik Faye-Lund [Thu, 20 Jun 2019 08:24:03 +0000 (10:24 +0200)]
zink: more batch-ism

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: cache framebuffers
Erik Faye-Lund [Wed, 19 Jun 2019 18:52:35 +0000 (20:52 +0200)]
zink: cache framebuffers

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: cache render-passes
Erik Faye-Lund [Wed, 19 Jun 2019 17:14:06 +0000 (19:14 +0200)]
zink: cache render-passes

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: simplify renderpass/framebuffer logic a tad
Erik Faye-Lund [Wed, 19 Jun 2019 16:54:19 +0000 (18:54 +0200)]
zink: simplify renderpass/framebuffer logic a tad

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: implement batching
Erik Faye-Lund [Thu, 13 Jun 2019 09:08:13 +0000 (11:08 +0200)]
zink: implement batching

This reduces stalling quite a bit.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: return after blitting
Erik Faye-Lund [Wed, 19 Jun 2019 13:43:40 +0000 (15:43 +0200)]
zink: return after blitting

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: remove unusual alignment
Erik Faye-Lund [Wed, 19 Jun 2019 13:22:46 +0000 (15:22 +0200)]
zink: remove unusual alignment

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: tweak state handling
Erik Faye-Lund [Wed, 19 Jun 2019 11:15:54 +0000 (13:15 +0200)]
zink: tweak state handling

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: move primitive-topology stuff into program
Erik Faye-Lund [Wed, 19 Jun 2019 10:29:49 +0000 (12:29 +0200)]
zink: move primitive-topology stuff into program

The primitive topology is a bit of an odd-ball, as it's the only
truly draw-call specific state that needs to be passed to the program to
get a pipeline.

So let's make this a bit more explict, by passing it separately. This
makes the flow of data a bit easier to wrap your head around.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: assign increasing locations to varyings
Erik Faye-Lund [Thu, 13 Jun 2019 09:03:55 +0000 (11:03 +0200)]
zink: assign increasing locations to varyings

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: ensure textures are transitioned properly
Erik Faye-Lund [Wed, 12 Jun 2019 18:05:59 +0000 (20:05 +0200)]
zink: ensure textures are transitioned properly

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: ensure non-fragment shaders use lod-versions of texture
Erik Faye-Lund [Wed, 12 Jun 2019 17:24:52 +0000 (19:24 +0200)]
zink: ensure non-fragment shaders use lod-versions of texture

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: emit dedicated block for variables
Erik Faye-Lund [Wed, 12 Jun 2019 16:54:29 +0000 (18:54 +0200)]
zink: emit dedicated block for variables

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: use uvec for undefs
Erik Faye-Lund [Wed, 12 Jun 2019 16:53:59 +0000 (18:53 +0200)]
zink: use uvec for undefs

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: do not destroy staging-resource, deref it
Erik Faye-Lund [Wed, 12 Jun 2019 16:24:30 +0000 (18:24 +0200)]
zink: do not destroy staging-resource, deref it

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: track used resources
Erik Faye-Lund [Wed, 12 Jun 2019 15:43:03 +0000 (17:43 +0200)]
zink: track used resources

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: implement fmod
Erik Faye-Lund [Wed, 12 Jun 2019 15:27:49 +0000 (17:27 +0200)]
zink: implement fmod

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: store shader_info in zink_shader
Erik Faye-Lund [Wed, 17 Apr 2019 19:08:54 +0000 (21:08 +0200)]
zink: store shader_info in zink_shader

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: texture-rects?
Erik Faye-Lund [Sat, 6 Apr 2019 19:06:11 +0000 (21:06 +0200)]
zink: texture-rects?

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: delete samplers after the current cmdbuf
Erik Faye-Lund [Tue, 26 Mar 2019 21:22:41 +0000 (22:22 +0100)]
zink: delete samplers after the current cmdbuf

This makes them zombies for a little while.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: add curr_cmdbuf-helper
Erik Faye-Lund [Tue, 26 Mar 2019 21:07:47 +0000 (22:07 +0100)]
zink: add curr_cmdbuf-helper

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: reference blit/copy-region resources
Erik Faye-Lund [Tue, 26 Mar 2019 20:05:17 +0000 (21:05 +0100)]
zink: reference blit/copy-region resources

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: whitespace cleanup
Erik Faye-Lund [Tue, 26 Mar 2019 19:44:49 +0000 (20:44 +0100)]
zink: whitespace cleanup

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: wait for idle on context-destroy
Erik Faye-Lund [Tue, 26 Mar 2019 19:33:35 +0000 (20:33 +0100)]
zink: wait for idle on context-destroy

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: reference ubos and textures
Erik Faye-Lund [Tue, 26 Mar 2019 19:22:31 +0000 (20:22 +0100)]
zink: reference ubos and textures

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: reference vertex and index buffers
Erik Faye-Lund [Tue, 26 Mar 2019 18:35:13 +0000 (19:35 +0100)]
zink: reference vertex and index buffers

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: return old fence from zink_flush
Erik Faye-Lund [Tue, 26 Mar 2019 18:10:43 +0000 (19:10 +0100)]
zink: return old fence from zink_flush

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: reference renderpass and framebuffer from cmdbuf
Erik Faye-Lund [Tue, 26 Mar 2019 17:25:02 +0000 (18:25 +0100)]
zink: reference renderpass and framebuffer from cmdbuf

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: cache those pipelines
Erik Faye-Lund [Tue, 26 Mar 2019 14:20:17 +0000 (15:20 +0100)]
zink: cache those pipelines

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: move renderpass inside gfx pipeline state
Erik Faye-Lund [Tue, 26 Mar 2019 13:53:32 +0000 (14:53 +0100)]
zink: move renderpass inside gfx pipeline state

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: cache programs
Erik Faye-Lund [Tue, 26 Mar 2019 12:52:09 +0000 (13:52 +0100)]
zink: cache programs

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: pass zink_render_pass to pipeline-creation
Erik Faye-Lund [Mon, 25 Mar 2019 14:59:25 +0000 (15:59 +0100)]
zink: pass zink_render_pass to pipeline-creation

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: prepare for multiple cmdbufs
Erik Faye-Lund [Mon, 25 Mar 2019 14:21:30 +0000 (15:21 +0100)]
zink: prepare for multiple cmdbufs

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: move cmdbuf-resetting into a helper
Erik Faye-Lund [Mon, 25 Mar 2019 13:59:44 +0000 (14:59 +0100)]
zink: move cmdbuf-resetting into a helper

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: do not leak image-views
Erik Faye-Lund [Mon, 25 Mar 2019 13:29:50 +0000 (14:29 +0100)]
zink: do not leak image-views

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: move render-pass begin to helper
Erik Faye-Lund [Mon, 25 Mar 2019 11:58:24 +0000 (12:58 +0100)]
zink: move render-pass begin to helper

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: prepare for caching of renderpases/framebuffers
Erik Faye-Lund [Mon, 25 Mar 2019 11:54:56 +0000 (12:54 +0100)]
zink: prepare for caching of renderpases/framebuffers

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: implement loops
Erik Faye-Lund [Mon, 18 Mar 2019 19:29:49 +0000 (20:29 +0100)]
zink/spirv: implement loops

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: implement discard
Erik Faye-Lund [Thu, 1 Nov 2018 21:12:11 +0000 (22:12 +0100)]
zink/spirv: implement discard

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: implement if-statements
Erik Faye-Lund [Fri, 22 Mar 2019 14:10:25 +0000 (15:10 +0100)]
zink/spirv: implement if-statements

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: prepare for control-flow
Erik Faye-Lund [Tue, 30 Oct 2018 09:43:53 +0000 (10:43 +0100)]
zink/spirv: prepare for control-flow

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: handle reading registers
Erik Faye-Lund [Thu, 21 Mar 2019 11:14:53 +0000 (12:14 +0100)]
zink/spirv: handle reading registers

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: implement some integer ops
Erik Faye-Lund [Wed, 20 Mar 2019 15:16:45 +0000 (16:16 +0100)]
zink/spirv: implement some integer ops

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: store all values as uint.
Dave Airlie [Fri, 19 Oct 2018 01:02:26 +0000 (11:02 +1000)]
zink/spirv: store all values as uint.

This adds bitcasting to uint everywhere for now,
and stores all spir-v ssa values as uints.

It also casts bool to 0/0xffffffff for now
(nir 1-bit bools may be coming in the future).

This fixes a lot of piglit tests to pass now

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: remove discard_if
Erik Faye-Lund [Thu, 1 Nov 2018 20:44:09 +0000 (21:44 +0100)]
zink: remove discard_if

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: query support (v2)
Dave Airlie [Tue, 2 Oct 2018 23:57:41 +0000 (00:57 +0100)]
zink: query support (v2)

This at least passes piglit occlusion_query test for me here now.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: transform z-range
Erik Faye-Lund [Thu, 27 Sep 2018 16:23:14 +0000 (18:23 +0200)]
zink: transform z-range

In vulkan, the Z-range of clip-space goes from 0..W instead of -W..+W
as is the case in OpenGL. So we need to transform the Z-range to
account for this.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: add dri loader
Dave Airlie [Tue, 2 Oct 2018 22:27:36 +0000 (23:27 +0100)]
zink: add dri loader

export MESA_LOADER_DRIVER_OVERRIDE=zink should now work without using
swrast paths

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: implement point-sprites
Erik Faye-Lund [Mon, 12 Nov 2018 12:20:15 +0000 (13:20 +0100)]
zink/spirv: implement point-sprites

This passes glsl-fs-pointcoord_gles2 from piglit.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: ask for flatshade lowering
Dave Airlie [Thu, 24 Jan 2019 03:13:26 +0000 (13:13 +1000)]
zink: ask for flatshade lowering

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: detect presence of VK_KHR_maintenance1
Erik Faye-Lund [Wed, 24 Oct 2018 07:46:05 +0000 (09:46 +0200)]
zink: detect presence of VK_KHR_maintenance1

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: introduce opengl over vulkan
Erik Faye-Lund [Fri, 31 Aug 2018 14:50:20 +0000 (16:50 +0200)]
zink: introduce opengl over vulkan

Here's zink, a so far pretty simple vulkan-gallium driver that is able
to translate some applications from OpenGL to Vulkan.

The compiler is quite limited for now, this will be improved on later.

Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agoradv: fix OpQuantizeToF16 for NaN on GFX6-7
Samuel Pitoiset [Thu, 24 Oct 2019 16:48:54 +0000 (18:48 +0200)]
radv: fix OpQuantizeToF16 for NaN on GFX6-7

Do not flush NaN to 0.

Fixes
dEQP-VK.spirv_assembly.instruction.compute.opquantize.propagated_nans

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
5 years agoradv: enable fast depth/stencil clears with separate aspects on GFX8
Samuel Pitoiset [Thu, 24 Oct 2019 12:59:29 +0000 (14:59 +0200)]
radv: enable fast depth/stencil clears with separate aspects on GFX8

It's similar to GFX9+. Shadow of Mordor (Vulkan beta) hits that
path and it works fine.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
5 years agoiris: Mark aux-map BO as used by all batches
Jordan Justen [Sat, 28 Apr 2018 08:56:59 +0000 (01:56 -0700)]
iris: Mark aux-map BO as used by all batches

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
5 years agoiris/gen12: Write GFX_AUX_TABLE base address register
Jordan Justen [Fri, 27 Apr 2018 23:39:30 +0000 (16:39 -0700)]
iris/gen12: Write GFX_AUX_TABLE base address register

Rework:
 * Move last_aux_map_state to iris_batch. (Nanley, Ken)

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
5 years agoiris: Map each surf to it's aux-surf in the aux-map tables
Jordan Justen [Sat, 28 Apr 2018 08:58:54 +0000 (01:58 -0700)]
iris: Map each surf to it's aux-surf in the aux-map tables

Rework: Nanley Chery
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
5 years agoisl/gen12: 64k surface alignment
Jordan Justen [Fri, 16 Feb 2018 10:20:00 +0000 (02:20 -0800)]
isl/gen12: 64k surface alignment

Reworks:
 * Update size for aux map change (Nanley)

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
5 years agoiris/bufmgr: Initialize aux map context for gen12
Jordan Justen [Fri, 27 Apr 2018 23:35:28 +0000 (16:35 -0700)]
iris/bufmgr: Initialize aux map context for gen12

Reworks:
 * free gen_buffer in gen_aux_map_buffer_free. (Rafael)
 * lock around aux_map_bos accesses. (Ken)

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
5 years agoanv: Add aux-map translation for gen12+
Lionel Landwerlin [Mon, 21 Oct 2019 14:17:44 +0000 (17:17 +0300)]
anv: Add aux-map translation for gen12+

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agoanv/gen12: Write GFX_AUX_TABLE base address register
Jordan Justen [Wed, 28 Mar 2018 08:50:17 +0000 (01:50 -0700)]
anv/gen12: Write GFX_AUX_TABLE base address register

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
5 years agogenxml/gen12: Add AUX MAP register definitions
Jordan Justen [Wed, 28 Mar 2018 08:16:12 +0000 (01:16 -0700)]
genxml/gen12: Add AUX MAP register definitions

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
5 years agoanv/gen12: Initialize aux map context
Jordan Justen [Wed, 28 Mar 2018 08:42:50 +0000 (01:42 -0700)]
anv/gen12: Initialize aux map context

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
5 years agointel/common: Add surface to aux map translation table support
Jordan Justen [Wed, 28 Mar 2018 08:10:06 +0000 (01:10 -0700)]
intel/common: Add surface to aux map translation table support

Reworks:
 * Add ISL_FORMAT_B8G8R8X8_UNORM_SRGB to get_format_encoding (Nanley)
 * ralloc_free aux_map_buffer entries in gen_aux_map_finish. (Rafael)
 * verify_aligned_space => align_and_verify_space (Rafael)
 * Add mutex to aux-map code. (Rafael, Nanley)
 * Add gen_aux_map_fill_bos (Ken)
 * Make gen_aux_map_get_state_num lockless

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
5 years agoanv: Implement aux-map allocator interface
Jordan Justen [Sun, 1 Apr 2018 20:57:13 +0000 (13:57 -0700)]
anv: Implement aux-map allocator interface

This interface allows the aux-map code in the intel/common library to
allocate and free buffers.

Reworks:
 * free gen_buffer in gen_aux_map_buffer_free. (Rafael)

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
5 years agointel/common: Add interface to allocate device buffers
Jordan Justen [Sun, 1 Apr 2018 20:37:55 +0000 (13:37 -0700)]
intel/common: Add interface to allocate device buffers

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
5 years agointel/dev: store whether the device uses an aux map tables on devinfo
Lionel Landwerlin [Mon, 21 Oct 2019 14:16:05 +0000 (17:16 +0300)]
intel/dev: store whether the device uses an aux map tables on devinfo

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
5 years agoi965: setup sized internalformat for MESA_FORMAT_R10G10B10A2_UNORM
Tapani Pälli [Fri, 11 Oct 2019 06:42:21 +0000 (09:42 +0300)]
i965: setup sized internalformat for MESA_FORMAT_R10G10B10A2_UNORM

Commit d2b60e433e5 introduced restrictions (as per GLES spec) on the
internal format. We need to setup a sized format for the texture image
so framebuffers created with that are considered complete.

This change fixes following Android CTS test in AHardwareBufferNativeTests
category:

   SingleLayer_ColorTest_GpuColorOutputAndSampledImage_R10G10B10A2_UNORM

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Fixes: d2b60e433e5 ("mesa/main: R10G10B10_(A2) formats are not color renderable in ES")
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
5 years agotu: fix empty-body instruction
Eric Engestrom [Sun, 27 Oct 2019 00:04:31 +0000 (01:04 +0100)]
tu: fix empty-body instruction

Fixes: 8d43e2b2ded0fe3c82d4 ("meson: add -Werror=empty-body to disallow `if(x);`")
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
5 years agov3d: fix empty-body instruction
Eric Engestrom [Sun, 27 Oct 2019 00:04:30 +0000 (01:04 +0100)]
v3d: fix empty-body instruction

Fixes: 8d43e2b2ded0fe3c82d4 ("meson: add -Werror=empty-body to disallow `if(x);`")
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
5 years agoradv: fix empty-body instruction
Eric Engestrom [Sun, 27 Oct 2019 00:04:28 +0000 (01:04 +0100)]
radv: fix empty-body instruction

Fixes: 8d43e2b2ded0fe3c82d4 ("meson: add -Werror=empty-body to disallow `if(x);`")
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
5 years agoanv: fix empty-body instruction
Eric Engestrom [Sat, 26 Oct 2019 22:51:51 +0000 (23:51 +0100)]
anv: fix empty-body instruction

Fixes: 8d43e2b2ded0fe3c82d4 ("meson: add -Werror=empty-body to disallow `if(x);`")
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
5 years agofreedreno/a2xx: use sysval for pointcoord
Jonathan Marek [Sat, 5 Oct 2019 20:09:55 +0000 (16:09 -0400)]
freedreno/a2xx: use sysval for pointcoord

Fixes a problem with shaders using gl_PointCoord.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Reported-by: Fabio Estevam <festevam@gmail.com>
Tested-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
5 years agopan/midgard: Disable precise occlusion queries
Alyssa Rosenzweig [Sat, 26 Oct 2019 13:02:34 +0000 (09:02 -0400)]
pan/midgard: Disable precise occlusion queries

I thought there was hardware support for this, but it seems to broken,
or at least more complex than I believed.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
5 years agopanfrost: allocate bo for occlusion query results
Urja Rannikko [Tue, 22 Oct 2019 12:05:07 +0000 (12:05 +0000)]
panfrost: allocate bo for occlusion query results

This memory needs to still be available after all the drawing is done
and forgotten about, so cannot be transient.
Also clear the result so that no rendering returns a zero.

Signed-off-by: Urja Rannikko <urjaman@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
5 years agopanfrost: Expose serialized NIR support
Alyssa Rosenzweig [Sat, 19 Oct 2019 21:14:44 +0000 (17:14 -0400)]
panfrost: Expose serialized NIR support

Serialized NIR is required for clover with the SPIR-V pipeline. With
this change and PAN_MESA_DEBUG=deqp, clinfo is able to successfully
probe panfrost.

Code from Nouveau (commit 7955fabcf89c7265f7f4244e46c5bcb83b9687fa by
Karol Herbst).

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
5 years agopipe-loader: Default to kmsro if probe fails
Alyssa Rosenzweig [Sat, 19 Oct 2019 20:46:54 +0000 (16:46 -0400)]
pipe-loader: Default to kmsro if probe fails

A device supported by kmsro will not automatically probe kmsro since the
driver name will be panfrost/lima/v3d/..., not "kmsro". Since kmsro is a
bit of a catch-all for generic (mostly embedded) GPUs, add a fallback on
kmsro for the dynamic loader.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
5 years agopipe-loader: Add kmsro pipe_loader target
Alyssa Rosenzweig [Sat, 19 Oct 2019 20:51:30 +0000 (16:51 -0400)]
pipe-loader: Add kmsro pipe_loader target

kmsro is used by numerous embedded GPUs for a common winsys abstraction.
Let's add support for it for the dynamic pipe loader, so clover can
probe on these drivers.

We build the target with Panfrost. When other drivers need kmsro+clover,
we can revisit the build system part; my mesonfu is wanting.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
5 years agoscons: Fix force_scons parsing.
Jose Fonseca [Fri, 25 Oct 2019 21:09:34 +0000 (22:09 +0100)]
scons: Fix force_scons parsing.

- Use parsed options instead of using ARGUMENTS directly.
- Handle the case of mingw cross compilation.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2003
5 years agoradv: enable secure compile support
Timothy Arceri [Wed, 31 Jul 2019 04:06:46 +0000 (14:06 +1000)]
radv: enable secure compile support

Can be enabled via the environment variable which tells the
driver how many compilation threads are expected to be called,
and therefore how many forked processes the driver should
create.

For example we would expect to call fossilize replay with
something like this:

RADV_SECURE_COMPILE_THREADS=8 ./fossilize-replay --num-threads 8 \
--shader-cache-size 0 --ignore-derived-pipelines pipeline_cache.foz

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
5 years agoradv: a support for a secure compile fork at device creation
Timothy Arceri [Wed, 31 Jul 2019 04:03:53 +0000 (14:03 +1000)]
radv: a support for a secure compile fork at device creation

This added support for the fork, the installation of the seccomp
filter, and the main loop for the actual compilation to be called
from i.e. run_secure_compile_device().

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
5 years agoradv: add radv_secure_compile()
Timothy Arceri [Wed, 31 Jul 2019 03:59:17 +0000 (13:59 +1000)]
radv: add radv_secure_compile()

This function will be called by the parent process when doing a
secure compile. It first selects a free process to work with then
passes it all the information it needs to compile the pipeline.

Once the pipeline information has been passed to the secure
process, it then waits around to read/write any disk cache entries
required before exiting.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
5 years agoradv: for secure compile exit early from radv_shader_variant_create()
Timothy Arceri [Wed, 31 Jul 2019 03:57:16 +0000 (13:57 +1000)]
radv: for secure compile exit early from radv_shader_variant_create()

We don't have permission to be creating shared memory etc.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
5 years agoradv: allow the secure process to read and write from disk cache
Timothy Arceri [Wed, 31 Jul 2019 03:50:52 +0000 (13:50 +1000)]
radv: allow the secure process to read and write from disk cache

This allows the secure process to read and write to the disk cache
via the parent process. This commit just adds the functionality
needed for the secure process, the following commit will add the
functionality for the parent process.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
5 years agoradv: add radv_device_use_secure_compile() helper
Timothy Arceri [Thu, 24 Oct 2019 03:17:15 +0000 (14:17 +1100)]
radv: add radv_device_use_secure_compile() helper

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
5 years agoradv: add some new members to radv device and instance for secure compile
Timothy Arceri [Wed, 31 Jul 2019 03:47:08 +0000 (13:47 +1000)]
radv: add some new members to radv device and instance for secure compile

These will be used by the following commits to hold information about
the forked secure compile processes.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
5 years agoradv: add radv_secure_compile_type enum
Timothy Arceri [Wed, 31 Jul 2019 03:44:44 +0000 (13:44 +1000)]
radv: add radv_secure_compile_type enum

This will be used to identify information being passed between the
parent and secure process during a secure compile.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
5 years agoradv: add radv_create_shaders() to radv_shader.h
Timothy Arceri [Wed, 31 Jul 2019 03:39:52 +0000 (13:39 +1000)]
radv: add radv_create_shaders() to radv_shader.h

In a follwing commit we want to be able to call this for secure
compiles from radv_device.c

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
5 years agoradv: add debug option to turn off in memory cache
Timothy Arceri [Fri, 12 Jul 2019 04:45:16 +0000 (14:45 +1000)]
radv: add debug option to turn off in memory cache

This can be usefull for debugging the on disk cache, but is also
useful in the following patch for secure compiles which will be
used to compile huge pipeline collections. These pipeline
collections can be multiple GBs and the in memory cache grows to
multiple GBs very quickly when they are compiled so we want to
be able to turn off the in memory cache.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
5 years agoradv: get topology from pipeline key rather than VkGraphicsPipelineCreateInfo
Timothy Arceri [Thu, 24 Oct 2019 02:03:20 +0000 (13:03 +1100)]
radv: get topology from pipeline key rather than VkGraphicsPipelineCreateInfo

This is cleaner and avoids having to read/write an additional copy of
topology for use with secure compile.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
5 years agodocs: document new feature EGL_EXT_image_flush_external
Marek Olšák [Fri, 25 Oct 2019 20:59:07 +0000 (16:59 -0400)]
docs: document new feature EGL_EXT_image_flush_external