Jason Ekstrand
ba393c9d81
anv/image: Actually fill out brw_image_param structs
2016-01-26 15:14:50 -08:00
Jason Ekstrand
aa9987a395
anv/image_view: Add base mip and base layer fields
...
These will be needed by image_load_store
2016-01-26 15:14:50 -08:00
Jason Ekstrand
42cd994177
gen7: Add support for base vertex/instance
2016-01-26 14:56:37 -08:00
Jason Ekstrand
4bf3cadb66
gen8: Add support for base vertex/instance
2016-01-26 14:56:37 -08:00
Jason Ekstrand
da75492879
genX/pipeline: Break emit_vertex_input out into common code
...
It's mostly the same and contains some non-trivial logic, so it really
should be shared. Also, we're about to make some modifications here that
we would really like to share.
2016-01-26 14:56:37 -08:00
Kristian Høgsberg Kristensen
fe6ccb6031
anv: Remove long unused anv_aub.h
2016-01-26 14:53:00 -08:00
Kristian Høgsberg Kristensen
074a7c7d7c
anv: Dirty fragment shader descriptors in meta restore
...
We need to reemit render targets, so dirtying VK_SHADER_STAGE_VERTEX_BIT
doesn't help us much.
2016-01-26 14:44:02 -08:00
Kristian Høgsberg Kristensen
725d969753
anv: Reemit STATE_BASE_ADDRESS after second level cmd buffers
...
Otherwise the primary batch will continue using the state base addresses
set by the secondary. Fixes remaining renderpass tests.
2016-01-26 14:44:02 -08:00
Chad Versace
df5f6d824b
anv/meta: Fix sample mask in clear pipelines
...
Once we begin emitting the correct sample mask,
genX_3DSTATE_SAMPLE_MASK_pack will hit an assertion if the mask contains
too many bits.
2016-01-26 11:04:44 -08:00
Jason Ekstrand
6b6a8a99f8
HACK/i965: Default to scalar GS on BDW+
2016-01-25 15:52:53 -08:00
Jason Ekstrand
6bbf3814dc
gen7/state: Apply min/mag filters individually for samplers
...
This fixes tests which apply different min and mag filters, and depend on
the min filter to be correct.
2016-01-25 15:33:08 -08:00
Ben Widawsky
9c69f4632d
gen8/state: Apply min/mag filters individually for samplers
...
This fixes tests which apply different min and mag filters, and depend on the
min filter to be correct.
2016-01-25 15:29:18 -08:00
Kristian Høgsberg Kristensen
8e07f7942e
anv: Remove a few finished finishme
2016-01-25 15:16:13 -08:00
Kristian Høgsberg Kristensen
76c096f0e7
anv: Remove stale assert
...
This goes back to when we didn't have the subpass number in the command
buffer begin info.
2016-01-25 15:15:59 -08:00
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