mesa.git
5 years agoiris: Allow for non-Y-tiled aux allocation
Nanley Chery [Mon, 12 Aug 2019 22:41:11 +0000 (15:41 -0700)]
iris: Allow for non-Y-tiled aux allocation

The Gen12 CCS is not Y-tiled.

Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agoisl/drm: Map HiZ and CCS tilings to Y
Nanley Chery [Wed, 27 Mar 2019 21:40:58 +0000 (14:40 -0700)]
isl/drm: Map HiZ and CCS tilings to Y

In the function which translates ISL tilings to i915 tilings, map ISL's
HiZ and CCS tilings to Y instead of NONE (linear). The HW docs describe
HiZ and pre-Gen12 CCS surfaces as being Y-tiled in memory.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agointel/isl: Update surf_fill_state for gen12
Jason Ekstrand [Fri, 4 May 2018 16:44:24 +0000 (09:44 -0700)]
intel/isl: Update surf_fill_state for gen12

v2 (Nanley):
* Avoid driver churn for now.
* Include some media compression changes.

Co-authored-by: Nanley Chery <nanley.g.chery@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agointel/isl/fill_state: Separate aux_mode handling from aux_surf
Jason Ekstrand [Fri, 4 May 2018 16:34:52 +0000 (09:34 -0700)]
intel/isl/fill_state: Separate aux_mode handling from aux_surf

v2. Avoid driver churn for now. (Nanley)

Co-authored-by: Nanley Chery <nanley.g.chery@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agointel/isl: Add new aux modes available on gen12
Jason Ekstrand [Fri, 4 May 2018 16:43:01 +0000 (09:43 -0700)]
intel/isl: Add new aux modes available on gen12

v2. Add media compression. (Nanley)

Co-authored-by: Nanley Chery <nanley.g.chery@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agoi965/miptree: Avoid -Wswitch for the Gen12 aux modes
Nanley Chery [Fri, 27 Sep 2019 00:23:33 +0000 (17:23 -0700)]
i965/miptree: Avoid -Wswitch for the Gen12 aux modes

Avoid the compiler warnings for the new enums that will be introduced in
a future commit.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agoanv/private: Modify aux slice helpers for Gen12 CCS
Nanley Chery [Fri, 13 Sep 2019 21:18:42 +0000 (14:18 -0700)]
anv/private: Modify aux slice helpers for Gen12 CCS

The isl_surf structs for Gen12's CCS won't describe how many slices in
the main surface can be compressed. All slices will be compressable if
CCS is enabled, so lookup the main surface's logical dimension.

v2. Add a space before a `?`. (Jordan)

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agointel/blorp: Don't assert aux slices match main slices
Nanley Chery [Fri, 30 Aug 2019 21:16:54 +0000 (14:16 -0700)]
intel/blorp: Don't assert aux slices match main slices

This isn't accurate enough for HiZ which can have a discontiguous range
of supported aux slices. This also won't work with the plan to represent
Gen12 CCS as a single slice surface.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agointel/blorp: Use surf instead of aux_surf for image dimensions
Jason Ekstrand [Tue, 15 May 2018 22:57:39 +0000 (15:57 -0700)]
intel/blorp: Use surf instead of aux_surf for image dimensions

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agointel/blorp: Halve the Gen12 fast-clear/resolve rectangle
Nanley Chery [Thu, 9 May 2019 23:38:12 +0000 (16:38 -0700)]
intel/blorp: Halve the Gen12 fast-clear/resolve rectangle

Update their dimensions according to the Bspec.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agointel/blorp/gen12: Set FWCC when storing the clear color.
Rafael Antognolli [Wed, 24 Apr 2019 20:05:20 +0000 (13:05 -0700)]
intel/blorp/gen12: Set FWCC when storing the clear color.

From "Render Target Fast Clear" description for Gen12:

   "SW must store clear color using MI_STORE_DATA_IMM with
   ForceWriteCompletionCheck bit set."

From Instruction_MI_STORE_DATA_IMM, bitfield 10 (when set to 1):

   "Following the last write from this command, Command Streamer
   will wait for all previous writes are completed and in global
   observable domain before moving to next command."

We use 4 SDIs to store the clear color (one per channel). From the
description, it looks to me that setting that flag only on the last SDI
should be enough.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agoisl: Round up some pitches to 512B for Gen12's CCS
Nanley Chery [Tue, 23 Apr 2019 22:28:18 +0000 (15:28 -0700)]
isl: Round up some pitches to 512B for Gen12's CCS

Gen12's CCS requires that the main surface have a pitch aligned to 512B.

v2. Provide a BSpec citation. (Ken)

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
5 years agoiris: Don't assume CCS_E includes CCS_D
Nanley Chery [Tue, 17 Sep 2019 16:16:12 +0000 (09:16 -0700)]
iris: Don't assume CCS_E includes CCS_D

There's no longer a clear-only compression mode of CCS on Gen12+.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agoanv/cmd_buffer: Don't assume CCS_E includes CCS_D
Nanley Chery [Tue, 17 Sep 2019 16:16:12 +0000 (09:16 -0700)]
anv/cmd_buffer: Don't assume CCS_E includes CCS_D

There's no longer a clear-only compression mode of CCS on Gen12+.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
5 years agoanv/image: Disable CCS_D on Gen12+
Nanley Chery [Fri, 14 Sep 2018 18:25:43 +0000 (11:25 -0700)]
anv/image: Disable CCS_D on Gen12+

Clear-only compression no longer exists on TGL.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agoisl: Disable CCS_D on Gen12+
Nanley Chery [Fri, 9 Aug 2019 17:41:38 +0000 (10:41 -0700)]
isl: Disable CCS_D on Gen12+

Clear-only compression no longer exists on TGL.

v2. Add BSpec reference. (Sagar)

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agoiris: Drop support for I915_FORMAT_MOD_Y_TILED_CCS on TGL+
Nanley Chery [Mon, 23 Sep 2019 18:09:46 +0000 (11:09 -0700)]
iris: Drop support for I915_FORMAT_MOD_Y_TILED_CCS on TGL+

The format of the CCS has changed.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agoanv/formats: Disable I915_FORMAT_MOD_Y_TILED_CCS on TGL+
Nanley Chery [Mon, 23 Sep 2019 20:32:06 +0000 (13:32 -0700)]
anv/formats: Disable I915_FORMAT_MOD_Y_TILED_CCS on TGL+

The format of the CCS has changed.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agoanv: Properly allocate aux-tracking space for CCS_E
Nanley Chery [Mon, 21 Oct 2019 19:56:00 +0000 (12:56 -0700)]
anv: Properly allocate aux-tracking space for CCS_E

add_aux_state_tracking_buffer() actually checks the aux usage when
determining how many dwords to allocate for state tracking. Move the
function call to the point after the CCS_E aux usage is assigned.

Fixes: de3be618016 ("anv/cmd_buffer: Rework aux tracking")
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
5 years agoanv/blorp: Use BLORP_BATCH_NO_UPDATE_CLEAR_COLOR
Nanley Chery [Wed, 23 Oct 2019 22:51:56 +0000 (15:51 -0700)]
anv/blorp: Use BLORP_BATCH_NO_UPDATE_CLEAR_COLOR

Avoid failing the `info->use_clear_address` assertion in ISL on Gen12+.

Fixes: 6c9f9a82d78 ("intel/genxml,isl: Add gen12 render surface state changes")
Reported-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
5 years agoanv: Add support for depth bounds testing.
Plamena Manolova [Thu, 24 Oct 2019 20:05:11 +0000 (21:05 +0100)]
anv: Add support for depth bounds testing.

In gen12 we use the 3DSTATE_DEPTH_BOUNDS instruction
to enable depth bounds testing.

Signed-off-by: Plamena Manolova <plamena.manolova@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
5 years agoiris: Add support for depth bounds testing.
Plamena Manolova [Wed, 23 Oct 2019 19:56:45 +0000 (20:56 +0100)]
iris: Add support for depth bounds testing.

In gen12 we use the 3DSTATE_DEPTH_BOUNDS instruction
to enable depth bounds testing.

Signed-off-by: Plamena Manolova <plamena.manolova@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
5 years agogenxml: Add 3DSTATE_DEPTH_BOUNDS instruction.
Plamena Manolova [Wed, 23 Oct 2019 20:39:02 +0000 (21:39 +0100)]
genxml: Add 3DSTATE_DEPTH_BOUNDS instruction.

In gen12 we add the 3DSTATE_DEPTH_BOUNDS instruction
which enables support for depth bounds testing.

Signed-off-by: Plamena Manolova <plamena.manolova@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
5 years agoglsl: Initialize all fields of ir_variable in constructor
Danylo Piliaiev [Fri, 25 Oct 2019 16:33:08 +0000 (19:33 +0300)]
glsl: Initialize all fields of ir_variable in constructor

Better be safe, even if we could technically avoid this for
some fields.

Cc: <mesa-stable@lists.freedesktop.org>
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1999
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Tested-by: Witold Baryluk <witold.baryluk@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
5 years agoutil: remove LIST_IS_EMPTY macro
Timothy Arceri [Mon, 28 Oct 2019 10:30:51 +0000 (21:30 +1100)]
util: remove LIST_IS_EMPTY macro

Just use the inlined function directly. The new function was introduced
in addcf410.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
5 years agoutil: rename list_empty() to list_is_empty()
Timothy Arceri [Mon, 28 Oct 2019 10:27:52 +0000 (21:27 +1100)]
util: rename list_empty() to list_is_empty()

This makes it clear that it's a boolean test and not an action
(eg. "empty the list").

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
5 years agoutil: remove LIST_DEL macro
Timothy Arceri [Sun, 27 Oct 2019 23:11:53 +0000 (10:11 +1100)]
util: remove LIST_DEL macro

Just use the inlined function directly. The macro was replaced with
the function in ebe304fa540f.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
5 years agoutil: remove LIST_DELINIT macro
Timothy Arceri [Sun, 27 Oct 2019 23:08:00 +0000 (10:08 +1100)]
util: remove LIST_DELINIT macro

Just use the inlined function directly. The macro was replaced with
the function in ebe304fa540f.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
5 years agoutil: remove LIST_REPLACE macro
Timothy Arceri [Sun, 27 Oct 2019 23:05:45 +0000 (10:05 +1100)]
util: remove LIST_REPLACE macro

Just use the inlined function directly. The macro was replaced with
the function in ebe304fa540f.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
5 years agoutil: remove LIST_ADD macro
Timothy Arceri [Sun, 27 Oct 2019 23:03:21 +0000 (10:03 +1100)]
util: remove LIST_ADD macro

Just use the inlined function directly. The macro was replaced with
the function in ebe304fa540f.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
5 years agoutil: remove LIST_ADDTAIL macro
Timothy Arceri [Sun, 27 Oct 2019 22:58:31 +0000 (09:58 +1100)]
util: remove LIST_ADDTAIL macro

Just use the inlined function directly. The macro was replaced with
the function in ebe304fa540f.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
5 years agoutil: remove LIST_INITHEAD macro
Timothy Arceri [Sun, 27 Oct 2019 22:49:39 +0000 (09:49 +1100)]
util: remove LIST_INITHEAD macro

Just use the inlined function directly. The macro was replaced with
the function in ebe304fa540f.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
5 years agogitlab-ci: fixup debian tags
Erik Faye-Lund [Mon, 28 Oct 2019 11:02:51 +0000 (12:02 +0100)]
gitlab-ci: fixup debian tags

When resolving a merge-conflict, I accidentally only updated the
ARM64-tag tag. Let's correct this.

Fixes: 3d529c17393 ("gitlab-ci: also build Zink on CI")
5 years agointel/compiler: Fix C++ one definition rule violations
Danylo Piliaiev [Fri, 25 Oct 2019 16:49:43 +0000 (19:49 +0300)]
intel/compiler: Fix C++ one definition rule violations

When building with "-flto" brw::block_data definitions
were colliding.

Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
5 years agogitlab-ci: also build Zink on CI
Erik Faye-Lund [Tue, 22 Oct 2019 07:08:11 +0000 (09:08 +0200)]
gitlab-ci: also build Zink on CI

This prevents accidentally breaking the driver-build while working on
other drivers.

Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
5 years agozink: simplify gl-to-vulkan lowering
Erik Faye-Lund [Wed, 9 Oct 2019 09:25:50 +0000 (11:25 +0200)]
zink: simplify gl-to-vulkan lowering

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: more complete sampler-dim handling
Erik Faye-Lund [Tue, 8 Oct 2019 09:54:10 +0000 (11:54 +0200)]
zink/spirv: more complete sampler-dim handling

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: fixup scissoring
Erik Faye-Lund [Tue, 8 Oct 2019 09:43:29 +0000 (11:43 +0200)]
zink: fixup scissoring

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: limited uniform buffer size so the limits is not exceeded.
Duncan Hopkins [Thu, 26 Sep 2019 11:25:26 +0000 (12:25 +0100)]
zink: limited uniform buffer size so the limits is not exceeded.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: do not set lineWidth to invalid value
Erik Faye-Lund [Mon, 23 Sep 2019 20:13:50 +0000 (22:13 +0200)]
zink: do not set lineWidth to invalid value

Some implementations don't support the lineWidth-feature, so let's
avoid setting invalid state to them. But since we don't have a fallback
for this, inform the user.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: pass screen to zink_create_gfx_pipeline
Erik Faye-Lund [Mon, 23 Sep 2019 20:11:35 +0000 (22:11 +0200)]
zink: pass screen to zink_create_gfx_pipeline

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: respect ubo buffer alignment requirement
Duncan Hopkins [Thu, 11 Jul 2019 10:51:08 +0000 (11:51 +0100)]
zink: respect ubo buffer alignment requirement

The driver can report a minimum alignment for UBOs, and that can be
larger than 64, which we've currently been using. Let's play ball, and
use the reported value instead.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: fix line-width calculation
Duncan Hopkins [Wed, 10 Jul 2019 13:50:16 +0000 (14:50 +0100)]
zink: fix line-width calculation

There's two things that goes wrong in this code on some drivers:
1. Rounding off the line-width to granularity can push it outside the
   legal range.
2. A granularity of 0.0 results in NaN, because we divide by zero.

So let's make this code a bit more robust.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: fixup return-value
Erik Faye-Lund [Thu, 25 Jul 2019 18:52:10 +0000 (20:52 +0200)]
zink: fixup return-value

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: refactor blitting
Erik Faye-Lund [Wed, 24 Jul 2019 21:18:08 +0000 (23:18 +0200)]
zink: refactor blitting

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: implement resource_from_handle
Erik Faye-Lund [Wed, 24 Jul 2019 15:58:54 +0000 (17:58 +0200)]
zink: implement resource_from_handle

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: use VK_FORMAT_B8G8R8A8_UNORM for PIPE_FORMAT_B8G8R8X8_UNORM
Erik Faye-Lund [Wed, 24 Jul 2019 19:59:04 +0000 (21:59 +0200)]
zink: use VK_FORMAT_B8G8R8A8_UNORM for PIPE_FORMAT_B8G8R8X8_UNORM

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: do not set VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT for non-3D textures
Erik Faye-Lund [Wed, 24 Jul 2019 12:09:11 +0000 (14:09 +0200)]
zink: do not set VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT for non-3D textures

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: alias var0 on tex0 etc instead
Erik Faye-Lund [Tue, 23 Jul 2019 15:55:51 +0000 (17:55 +0200)]
zink/spirv: alias var0 on tex0 etc instead

This fixes Quake3, and is more in line with directx semantics.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: lower two-sided coloring
Erik Faye-Lund [Thu, 25 Jul 2019 11:50:40 +0000 (13:50 +0200)]
zink: lower two-sided coloring

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: alias generic varyings on non-generic ones
Erik Faye-Lund [Mon, 22 Jul 2019 14:16:40 +0000 (16:16 +0200)]
zink/spirv: alias generic varyings on non-generic ones

This gets rid of the nasty location-allocation hack.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: implement load_front_face
Erik Faye-Lund [Mon, 22 Jul 2019 11:24:14 +0000 (13:24 +0200)]
zink/spirv: implement load_front_face

We're now adding interface-types during code-emitting, so we need to
defer emitting the entry-point. No biggie, spirv_builder is prepares for
this.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: fixup b2i32
Erik Faye-Lund [Fri, 19 Jul 2019 15:35:27 +0000 (17:35 +0200)]
zink/spirv: fixup b2i32

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: do not lower bools to float
Erik Faye-Lund [Fri, 19 Jul 2019 15:05:19 +0000 (17:05 +0200)]
zink: do not lower bools to float

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: prepare for 1-bit booleans
Erik Faye-Lund [Fri, 19 Jul 2019 15:04:50 +0000 (17:04 +0200)]
zink/spirv: prepare for 1-bit booleans

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: fixup b2i32 and implement b2f32
Erik Faye-Lund [Fri, 19 Jul 2019 14:53:04 +0000 (16:53 +0200)]
zink/spirv: fixup b2i32 and implement b2f32

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: clean up get_[fu]vec_constant
Erik Faye-Lund [Fri, 19 Jul 2019 14:25:21 +0000 (16:25 +0200)]
zink/spirv: clean up get_[fu]vec_constant

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: inline get_uvec_constant into emit_load_const
Erik Faye-Lund [Fri, 19 Jul 2019 14:12:57 +0000 (16:12 +0200)]
zink/spirv: inline get_uvec_constant into emit_load_const

This is the only call-site that wants to specify unique values per
component for any of the get_*_constant functions. So let's give this
its own implementation instead, so we can ease the burden for the rest.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: add emit_uint_const-helper
Erik Faye-Lund [Fri, 19 Jul 2019 14:09:11 +0000 (16:09 +0200)]
zink/spirv: add emit_uint_const-helper

While we're at it, let's move emit_float_const to the same location as
this needs to be defined at.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: add emit_bitcast-helper
Erik Faye-Lund [Fri, 19 Jul 2019 13:49:23 +0000 (15:49 +0200)]
zink/spirv: add emit_bitcast-helper

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: use bit_size instead of hard-coding
Erik Faye-Lund [Fri, 19 Jul 2019 13:34:07 +0000 (15:34 +0200)]
zink/spirv: use bit_size instead of hard-coding

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: implement emit_float_const helper
Erik Faye-Lund [Fri, 19 Jul 2019 13:30:54 +0000 (15:30 +0200)]
zink/spirv: implement emit_float_const helper

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: implement emit_select helper
Erik Faye-Lund [Fri, 19 Jul 2019 13:23:47 +0000 (15:23 +0200)]
zink/spirv: implement emit_select helper

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: implement b2i32
Erik Faye-Lund [Fri, 19 Jul 2019 13:03:13 +0000 (15:03 +0200)]
zink/spirv: implement b2i32

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: implement bitwise ops
Erik Faye-Lund [Fri, 19 Jul 2019 13:02:49 +0000 (15:02 +0200)]
zink/spirv: implement bitwise ops

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: implement bcsel
Erik Faye-Lund [Fri, 19 Jul 2019 12:41:08 +0000 (14:41 +0200)]
zink/spirv: implement bcsel

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: assert bit-size
Erik Faye-Lund [Fri, 19 Jul 2019 12:39:30 +0000 (14:39 +0200)]
zink/spirv: assert bit-size

This is going to make it easier to verify that 1-bit float sizes don't
leak into the rest of the code.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: implement f2b1
Erik Faye-Lund [Fri, 19 Jul 2019 12:27:47 +0000 (14:27 +0200)]
zink/spirv: implement f2b1

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: use ordered compares
Erik Faye-Lund [Thu, 18 Jul 2019 16:42:20 +0000 (18:42 +0200)]
zink/spirv: use ordered compares

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: lower point-size
Erik Faye-Lund [Thu, 18 Jul 2019 15:04:09 +0000 (17:04 +0200)]
zink: lower point-size

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: add missing sRGB DXT-formats
Erik Faye-Lund [Wed, 17 Jul 2019 09:33:58 +0000 (11:33 +0200)]
zink: add missing sRGB DXT-formats

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: disable PIPE_CAP_QUERY_TIME_ELAPSED for now
Erik Faye-Lund [Wed, 17 Jul 2019 09:26:53 +0000 (11:26 +0200)]
zink: disable PIPE_CAP_QUERY_TIME_ELAPSED for now

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: support shadow-samplers
Erik Faye-Lund [Tue, 16 Jul 2019 15:52:36 +0000 (17:52 +0200)]
zink: support shadow-samplers

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: fix rendering to 3D-textures
Erik Faye-Lund [Tue, 16 Jul 2019 15:16:09 +0000 (17:16 +0200)]
zink: fix rendering to 3D-textures

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: initialize nr_samples for pipe_surface
Erik Faye-Lund [Tue, 16 Jul 2019 15:02:56 +0000 (17:02 +0200)]
zink: initialize nr_samples for pipe_surface

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: use primconvert to get rid of 8-bit indices
Erik Faye-Lund [Tue, 16 Jul 2019 13:18:53 +0000 (15:18 +0200)]
zink: use primconvert to get rid of 8-bit indices

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: also accept txl
Erik Faye-Lund [Tue, 16 Jul 2019 12:25:59 +0000 (14:25 +0200)]
zink: also accept txl

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agoHACK: zink: suspend / resume queries on batch-boundaries
Erik Faye-Lund [Tue, 16 Jul 2019 11:29:06 +0000 (13:29 +0200)]
HACK: zink: suspend / resume queries on batch-boundaries

HACK because we assert that we don't overrun the pool. We need a
fallback here instead.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: move set_active_query_state-stub to zink_query.c
Erik Faye-Lund [Tue, 16 Jul 2019 09:20:42 +0000 (11:20 +0200)]
zink: move set_active_query_state-stub to zink_query.c

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: disable timestamp-queries
Erik Faye-Lund [Tue, 16 Jul 2019 09:02:16 +0000 (11:02 +0200)]
zink: disable timestamp-queries

We don't implement the get_timestamp context-method, so this is just
going to crash if anyone tries to use it. Let's implement it later.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: fixup boolean queries
Erik Faye-Lund [Mon, 15 Jul 2019 17:24:15 +0000 (19:24 +0200)]
zink: fixup boolean queries

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: support vec1 coordinates
Erik Faye-Lund [Mon, 15 Jul 2019 13:48:31 +0000 (15:48 +0200)]
zink/spirv: support vec1 coordinates

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: do not use both depth and stencil aspects for sampler-views
Erik Faye-Lund [Mon, 15 Jul 2019 13:33:34 +0000 (15:33 +0200)]
zink: do not use both depth and stencil aspects for sampler-views

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: always enable Sampled1D for fragment shaders
Erik Faye-Lund [Mon, 15 Jul 2019 13:02:59 +0000 (15:02 +0200)]
zink/spirv: always enable Sampled1D for fragment shaders

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: add note about enabling PIPE_CAP_CLIP_HALFZ
Erik Faye-Lund [Mon, 15 Jul 2019 13:02:15 +0000 (15:02 +0200)]
zink: add note about enabling PIPE_CAP_CLIP_HALFZ

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: don't crash when setting rast-state to NULL
Erik Faye-Lund [Mon, 15 Jul 2019 12:44:11 +0000 (14:44 +0200)]
zink: don't crash when setting rast-state to NULL

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: remove insecure comment
Erik Faye-Lund [Mon, 15 Jul 2019 12:42:37 +0000 (14:42 +0200)]
zink: remove insecure comment

This isn't as inaccurate as the comment says, the Vulkan documentation
even seems to suggest this is the same. Let's drop the comment.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: avoid texelFetch until it's implemented
Erik Faye-Lund [Mon, 15 Jul 2019 12:07:49 +0000 (14:07 +0200)]
zink: avoid texelFetch until it's implemented

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: set ExecutionModeDepthReplacing when depth is written
Erik Faye-Lund [Mon, 15 Jul 2019 12:06:22 +0000 (14:06 +0200)]
zink: set ExecutionModeDepthReplacing when depth is written

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: fixup: save rasterizer
Erik Faye-Lund [Mon, 15 Jul 2019 12:05:41 +0000 (14:05 +0200)]
zink: fixup: save rasterizer

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: ensure layout is reasonable before copying
Erik Faye-Lund [Mon, 15 Jul 2019 10:16:25 +0000 (12:16 +0200)]
zink: ensure layout is reasonable before copying

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: debug-print unknown varying slots
Erik Faye-Lund [Mon, 15 Jul 2019 10:03:08 +0000 (12:03 +0200)]
zink/spirv: debug-print unknown varying slots

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: be a bit more strict with fragment-results
Erik Faye-Lund [Mon, 15 Jul 2019 10:02:31 +0000 (12:02 +0200)]
zink/spirv: be a bit more strict with fragment-results

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: wait for transfer when reading
Erik Faye-Lund [Fri, 12 Jul 2019 10:58:49 +0000 (12:58 +0200)]
zink: wait for transfer when reading

TODO: this could really benefit from a separate transfer-queue, I think.
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: support more texturing
Erik Faye-Lund [Fri, 12 Jul 2019 10:43:20 +0000 (12:43 +0200)]
zink: support more texturing

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink/spirv: correct opcode
Erik Faye-Lund [Fri, 12 Jul 2019 10:06:51 +0000 (12:06 +0200)]
zink/spirv: correct opcode

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: make sure imageExtent.depth is 1 for arrays
Erik Faye-Lund [Fri, 12 Jul 2019 09:59:12 +0000 (11:59 +0200)]
zink: make sure imageExtent.depth is 1 for arrays

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: stub resource_from_handle
Erik Faye-Lund [Fri, 12 Jul 2019 09:40:12 +0000 (11:40 +0200)]
zink: stub resource_from_handle

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: abort on submit-failure
Erik Faye-Lund [Fri, 12 Jul 2019 09:28:45 +0000 (11:28 +0200)]
zink: abort on submit-failure

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
5 years agozink: crash hard on unknown queries
Erik Faye-Lund [Fri, 12 Jul 2019 08:51:12 +0000 (10:51 +0200)]
zink: crash hard on unknown queries

Acked-by: Jordan Justen <jordan.l.justen@intel.com>