mesa/src
Jason Ekstrand 1e5fd2f839 anv/image: Support creating uncompressed views of compressed images
In order to get support everywhere, this gets a bit complicated.  On Sky
Lake and later, everything is fine because HALIGN/VALIGN are specified
in surface elements and are required to be at least 4 so any offsetting
we may need to do falls neatly within the heavy restrictions placed on
the X/Y Offset parameter of RENDER_SURFACE_STATE.  On Broadwell and
earlier, HALIGN/VALIGN are specified in pixels and are hard-coded to
align to exactly the block size of the compressed texture.  This means
that, when reinterpreted as a non-compressed texture, the tile offsets
may be anything and we can't rely on X/Y Offset.

In order to work around this issue, we fall back to linear where we can
trivially offset to whatever element we so choose.  However, since
linear texturing performance is terrible, we create a tiled shadow copy
of the image to use for texturing.  Whenever the user does a layout
transition from anything to SHADER_READ_ONLY_OPTIMAL, we use blorp to
copy the contents of the texture from the linear copy to the tiled
shadow copy.  This assumes that the client will use the image far more
for texturing than as a storage image or render target.

Even though we don't need the shadow copy on Sky Lake, we implement it
this way first to make testing easier.  Due to the hardware restriction
that ASTC must not be linear, ASTC does not work yet.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
2017-09-20 17:21:06 -07:00
..
amd spirv: Flip the tessellation winding order 2017-09-20 17:21:06 -07:00
broadcom broadcom/genxml: Set up enums for VC5 blending, depth, stencil, and prims. 2017-09-19 10:40:55 -07:00
compiler spirv: Flip the tessellation winding order 2017-09-20 17:21:06 -07:00
egl egl: fix build fallouts from 1d0be5b3fe 2017-09-19 21:27:01 +01:00
gallium clover: Wait for requested operation if blocking flag is set 2017-09-20 18:48:46 -04:00
gbm configure.ac: split the wayland client/server confusion 2017-09-19 19:02:34 +01:00
getopt
glx glx: turn LIBGL_NO_DRAWARRAYS into a boolean 2017-09-12 13:53:12 +01:00
gtest
hgl
intel anv/image: Support creating uncompressed views of compressed images 2017-09-20 17:21:06 -07:00
loader loader/dri3: Make sure we invalidate a drawable on size change 2017-09-07 12:43:29 +02:00
mapi mapi/gen: remove shebang from the marshal generator scripts 2017-08-26 11:20:08 +01:00
mesa i965: Fix duplication of DRI images 2017-09-20 07:07:05 -07:00
util radeonsi: allow out-of-order rasterization in commutative blending cases 2017-09-18 11:25:20 +02:00
vulkan configure.ac: split the wayland client/server confusion 2017-09-19 19:02:34 +01:00
Makefile.am automake: adjust wayland-drm comment 2017-09-19 19:02:34 +01:00
SConscript build: Convert git_sha1_gen script to Python. 2017-08-01 15:24:39 +01:00