Nanley Chery
2c94f659e8
anv/meta: Fix CopyBuffer when size matches HW limit
...
Perform a copy when the copy_size matches the HW limit (max_copy_size).
Otherwise the current behavior is that we fail the following assertion:
assert(height < max_surface_dim);
because the values are equal.
2016-01-25 12:26:39 -08:00
Kristian Høgsberg Kristensen
c21de2bf04
anv: Don't use uninitialized barycentric_interp_modes
...
If we don't have a fragment shader, wm_prog_data in undefined.
2016-01-25 11:34:32 -08:00
Kristian Høgsberg Kristensen
292031a1a5
anv: Disable fs dispatch for depth/stencil only pipelines
...
Fixes most renderpass bugs.
2016-01-25 11:26:19 -08:00
Jason Ekstrand
a804d82ef6
anv/cmd_buffer: Zero out binding tables and samplers in state_reset
...
This fixes a use of an undefined value if the client uses push constants in
a stage without ever setting any descriptors on GEN8-9.
2016-01-22 22:57:05 -08:00
Jason Ekstrand
2bfb9f29b8
anv/format: Add a helpful comment about format names
2016-01-22 19:14:41 -08:00
Jason Ekstrand
259e1bdf79
anv/formats: Add support for 3 more formats
2016-01-22 19:03:27 -08:00
Jason Ekstrand
0b6c1275d0
anv/pipeline: Add a default L3$ setup
2016-01-22 19:02:55 -08:00
Chad Versace
99a4885328
anv/formats: Rename ambiguous func parameter
...
vkGetPhysicalDeviceImageFormatProperties has multiple 'flags'
parameters.
2016-01-22 17:51:24 -08:00
Chad Versace
149d5ba64d
anv/formats: Advertise multisample formats
...
Teach vkGetPhysicalDeviceImageFormatProperties() to advertise
multisampled formats.
2016-01-22 17:50:15 -08:00
Chad Versace
d96d78c3b6
anv/image: Drop assertion that samples == 1
2016-01-22 17:19:57 -08:00
Chad Versace
fa5f45e8aa
anv/meta: Assert correct sample counts for blit funcs
...
Add assertions to:
anv_CmdBlitImage
anv_CmdCopyImage
anv_CmdCopyImageToBuffer
anv_CmdCopyBufferToImage
2016-01-22 17:19:57 -08:00
Chad Versace
dfcb4ee6df
anv: Add anv_image::samples
...
It's set but not yet used.
2016-01-22 17:19:57 -08:00
Chad Versace
1c5d7b38e2
anv: Use isl_device_get_sample_counts()
...
Use it in vkGetPhysicalDeviceProperties.
2016-01-22 17:19:57 -08:00
Nanley Chery
d4de918ad0
gen8/state: Remove SKL special-casing for MinimumArrayElement
...
MinimumArrayElement carries the same meaning for BDW and SKL.
Suggested by Jason.
No regressions in dEQP-VK.pipeline.image.view_type.cube_array.*
Fixes a number of cube tests, including cube_array_base_slice
and cube_base_slice tests.
2016-01-22 17:10:14 -08:00
Chad Versace
6a03c69adb
anv/state: Dedupe code for lowering surface format
...
Add helper anv_surface_format().
2016-01-22 16:49:17 -08:00
Francisco Jerez
11d5c1905c
anv/meta: Set sampler type and instruction arrayness consistently in blit shader.
2016-01-22 16:43:18 -08:00
Francisco Jerez
bf151b8892
anv/meta: Fix meta blit fragment shader for 1D arrays.
2016-01-22 16:43:15 -08:00
Jason Ekstrand
53b83899e0
genX/state: Set CubeSurfaceControlMode to OVERRIDE
...
This makes it act like the address mode is set to TEXCOORDMODE_CUBE
whenever this sampler is combined with a cube surface. This *should* be
what we need for Vulkan. Interestingly, the PRM contains a programming
note for this field that says simply, "This field must be set to
CUBECTRLMODE_PROGRAMMED". However, emprical evidence suggests that it does
what the PRM says it does and OVERRIDE is just fine.
2016-01-22 16:34:13 -08:00
Jason Ekstrand
35879fe829
gen8/state: Divide depth by 6 for cube maps for GEN8
...
For Broadwell cube maps, MinimumArrayElement is in terms of 2d slices (a
multiple of 6) but Depth is in terms of whole cubes.
2016-01-22 16:14:54 -08:00
Nanley Chery
3cd8c0bb04
gen8_state: Enable all cube faces
...
These fields are ignored for non-cube surfaces. For cube surfaces
these fields should be enabled when using TEXCOORDMODE_CLAMP and
TEXCOORDMODE_CUBE.
TODO: Determine if these are the only two modes used in Vulkan.
2016-01-22 16:12:52 -08:00
Jason Ekstrand
e5558ffa64
anv/image: Move common code to anv_image.c
2016-01-22 11:57:01 -08:00
Jason Ekstrand
84612f4014
anv/state: Refactor surface state setup into a "fill" function
2016-01-22 11:40:56 -08:00
Francisco Jerez
448285ebf2
anv/state: Add missing clflushes for storage image surface state.
2016-01-22 11:12:09 -08:00
Francisco Jerez
d533c3796d
anv/state: Factor out surface state calculation from genX_image_view_init.
...
Some fields of the surface state template were dependent on the
surface type, which is dependent on the usage of the image view, which
wasn't known until the bottom of the function after the template had
been constructed. This caused failures in all image load/store CTS
tests using cubemaps. Refactor the surface state calculation into a
function that is called once for each required usage.
2016-01-22 11:12:09 -08:00
Francisco Jerez
2e54381622
anv/batch_chain: Fix patching up of block pool relocations on Gen8+.
...
Relocations are 64 bits on Gen8+. Most CTS tests that send
non-trivial work to the GPU would fail when run from a single deqp-vk
invocation because they were effectively relying on reloc presumed
offsets to be wrong so the kernel would come and apply relocations
correctly.
2016-01-21 16:30:44 -08:00
Kristian Høgsberg Kristensen
ac60e98a58
vk: Do render cache flush for GEN8+
...
This is needed for SKL as well.
2016-01-21 14:18:52 -08:00
Kristian Høgsberg Kristensen
9eab8fc683
vk: Emit surface state base address before renderpass
...
If we're continuing a render pass, make sure we don't emit the depth and
stencil buffer addresses before we set the state base addresses.
Fixes crucible func.cmd-buffer.small-secondaries
2016-01-21 14:18:52 -08:00
Kristian Høgsberg Kristensen
c5490d0277
vk: Fix indirect push constants
...
This currently sets the base and size of all push constants to the
entire push constant block. The idea is that we'll use the base and size
to eventually optimize the amount we actually push, but for now we don't
do that.
2016-01-21 11:10:11 -08:00
Jordan Justen
bc035db3c8
anv/gen8: Set SLM size in interface descriptor
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-01-21 00:31:29 -08:00
Jordan Justen
819cb69434
anv/gen8+9: Invalidate color calc state when switching to the GPGPU pipeline
...
Port 044acb9256 to anv.
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-01-21 00:31:29 -08:00
Jordan Justen
19830031cb
anv/gen8: Enable SLM in L3 cache control register
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-01-21 00:31:29 -08:00
Jordan Justen
97b09a9268
anv/pipeline: Set size of shared variables in prog_data
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2016-01-21 00:31:29 -08:00
Chad Versace
5ce5a7d021
anv/image: Stop including gen8_pack.h in common file
2016-01-20 15:42:17 -08:00
Kristian Høgsberg Kristensen
7b7a7c2bfc
vk: Make maxSamplerAllocationCount more reasonable
...
We can't allocate 4 billion samplers. Let's go with 64k.
2016-01-20 14:36:52 -08:00
Kristian Høgsberg Kristensen
8ef002dd7a
vk/tests: Add stub for anv_gem_get_bit6_swizzle()
2016-01-20 13:47:40 -08:00
Kristian Høgsberg Kristensen
420e8664cb
vk/tests: Add isl include path
2016-01-20 13:47:40 -08:00
Jason Ekstrand
e45748bade
anv/device: Default to scalar GS on BDW+
2016-01-20 11:16:44 -08:00
Jason Ekstrand
59ef7c6507
anv/meta: fix UpdateBuffer in the case where we do multiple updates
2016-01-20 07:56:48 -08:00
Jason Ekstrand
a0516cfbac
anv/meta: Fix a finishme
2016-01-20 07:33:41 -08:00
Jason Ekstrand
eb2a119da2
anv/meta: Implement UpdateBuffer
2016-01-19 16:53:35 -08:00
Jason Ekstrand
0ae1bd321e
anv/meta: Implement CmdFillBuffer
2016-01-19 16:53:35 -08:00
Jason Ekstrand
46eef31311
anv/meta_clear: Call emit_clear directly in ClearImage
...
Using the load op means that we end up with recursive meta. We shouldn't
be doing that.
2016-01-19 16:53:35 -08:00
Jason Ekstrand
6325a75011
anv/meta_clear: Do save/restore in actual entry points
2016-01-19 16:53:35 -08:00
Jason Ekstrand
56dbf13045
anv: Add support for VK_WHOLE_SIZE several places
2016-01-19 16:53:35 -08:00
Jason Ekstrand
5e57a87dcf
anv/pipeline: Fix point size
2016-01-19 12:03:13 -08:00
Jason Ekstrand
3276610ea6
getX/state: Set LOD pre-clamp to OpenGL mode
...
This gets us another couple hundred sampler tests
2016-01-18 17:51:35 -08:00
Jason Ekstrand
580b2e85e4
isl/device: Add a flag for bit 6 swizzling
2016-01-18 17:21:05 -08:00
Jason Ekstrand
587842a0ca
anv/gem: Add a helper for getting bit6 swizzling information
2016-01-18 17:21:05 -08:00
Jason Ekstrand
6f956b0b22
anv/meta: Improve meta clear cleanup a bit
2016-01-18 14:07:46 -08:00
Jason Ekstrand
45d17fcf9b
anv: Misc allocation scope fixes
2016-01-18 14:04:13 -08:00