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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Marek Olšák [Fri, 25 Oct 2019 20:59:07 +0000 (16:59 -0400)]
docs: document new feature EGL_EXT_image_flush_external
Marek Olšák [Fri, 18 Oct 2019 00:07:32 +0000 (20:07 -0400)]
egl: implement new functions from EGL_EXT_image_flush_external
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-By: Tapani Pälli <tapani.palli@intel.com>
Marek Olšák [Thu, 17 Oct 2019 22:59:23 +0000 (18:59 -0400)]
egl: handle EGL_IMAGE_EXTERNAL_FLUSH_EXT
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-By: Tapani Pälli <tapani.palli@intel.com>
Marek Olšák [Thu, 17 Oct 2019 21:47:14 +0000 (17:47 -0400)]
st/dri: add support for EGL_EXT_image_flush_external
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-By: Tapani Pälli <tapani.palli@intel.com>
Marek Olšák [Thu, 17 Oct 2019 20:46:06 +0000 (16:46 -0400)]
st/dri: assume external consumers of back buffers can write to the buffers
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-By: Tapani Pälli <tapani.palli@intel.com>
Marek Olšák [Thu, 17 Oct 2019 20:48:48 +0000 (16:48 -0400)]
dri_interface: add interface for EGL_EXT_image_flush_external
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-By: Tapani Pälli <tapani.palli@intel.com>
Marek Olšák [Thu, 17 Oct 2019 22:58:42 +0000 (18:58 -0400)]
include: add the definition of EGL_EXT_image_flush_external
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-By: Tapani Pälli <tapani.palli@intel.com>
Dylan Baker [Wed, 23 Oct 2019 21:36:19 +0000 (14:36 -0700)]
gitlab-ci: Add a job for meson on windows
This adds a new CI job that runs on windows with MSVC. It currently
builds softpipe and osmesa, and runs the related unit tests. It does
rely on meson's wraps for zlib, but I've set up caching of the wrap
dependencies so hopefully that wont be a problem.
I really wanted to user powershell for this, but there just isn't an
easy way to do that, it's much easier to use batch scripts, so thats
what I used.
The leading `/` for .gitlab-ci/lava... must be removed because windows
doesn't understand it, and when it reads the file the job ends in error.
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Dylan Baker [Wed, 23 Oct 2019 21:21:31 +0000 (14:21 -0700)]
gitlab-ci: refactor out some common stuff for Windows and Linux
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Dylan Baker [Fri, 25 Oct 2019 20:56:23 +0000 (13:56 -0700)]
nir: Fix invalid code for MSVC
Fixes:
ee2050b1111b65594f3470035f7b6f1330824684
("nir: Use BITSET for tracking varyings in lower_io_arrays")