Commit Graph

1215 Commits

Author SHA1 Message Date
Jason Ekstrand f2f03c5b65 anv/pipeline: Set MaximumVPIndex in 3DSTATE_CLIP 2016-01-26 21:52:59 -08:00
Jason Ekstrand dc3de6f8df anv/pipeline: Only lower input indirects if EmitNoIndirectInput is set 2016-01-26 21:45:21 -08:00
Jason Ekstrand 9ac624751e anv/formats: Use is_power_of_two instead of is_rgb to determine renderability 2016-01-26 20:29:16 -08:00
Jordan Justen c20f78dc5d anv: Support swizzled formats.
Some formats require a swizzle in order to map them to actual hardware
formats.  This allows us to turn on two new Vulkan formats.
2016-01-26 20:29:16 -08:00
Jason Ekstrand 9bc72a9213 anv/image: Do swizzle remapping in anv_image.c
TODO: At some point, we really need to make an image_view_init_info that's
a flyweight and stop stuffing everything into image_view.
2016-01-26 20:23:59 -08:00
Jason Ekstrand 7d84fe9b1f HACK: Expose support for stencil blits
If someone actually tries to use them, they won't work, but at least we
don't fail to return format properties now.
2016-01-26 17:29:49 -08:00
Jason Ekstrand a1ea45b857 genX/pipeline: Don't make vertex bindings with holes 2016-01-26 15:44:18 -08:00
Jason Ekstrand 7ef0d39cb2 anv/cmd_buffer: Put base_instance in the second component 2016-01-26 15:44:02 -08:00
Francisco Jerez 6840cc1513 anv/image: clflush surface state map in anv_fill_buffer_surface_state().
Some of its users had the required clflush on non-LLC platforms, some
didn't.  Put the clflush in anv_fill_buffer_surface_state() so we
don't forget.
2016-01-26 15:14:50 -08:00
Francisco Jerez fc7a7b31c5 anv/image: clflush the right state map in anv_fill_image_surface_state().
It was clflushing the nonrt_surface_state structure regardless of
which state structure was actually being initialized.
2016-01-26 15:14:50 -08:00
Francisco Jerez a50dc70e21 anv/image: Upload raw buffer surface state for untyped storage image and texel buffer access. 2016-01-26 15:14:50 -08:00
Francisco Jerez d2ec510dda anv/image: Fix image parameter initialization. 2016-01-26 15:14:50 -08:00
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