| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
We ignore unused dimensions in the isl surface; do the same for the
resulting anv_image.
Reviewed-by: Kristian Høgsberg Kristensen <[email protected]>
|
|
|
|
|
| |
The vkCmdPipelineBarrier() command should work as intended now and we
need to pull the plug on this old hack.
|
|
|
|
|
|
|
|
|
|
|
|
| |
We don't need to look at the stage flags, as we don't really support any
fine-grained, stage-level synchronization. We have to do two
PIPE_CONTROLs in case we're both flushing and
invalidating.
Additionally, if we do end up doing two PIPE_CONTROLs, the first,
flusing one also has to stall and wait for the flushing to finish, so we
don't re-dirty the caches with in-flight rendering after the second
PIPE_CONTROL invalidates.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We would assert on unused dimensions (eg extent.depth for
VK_IMAGE_TYPE_2D) not being 1, but the specification doesn't put any
constraints on those. For example, for VK_IMAGE_TYPE_1D:
"If imageType is VK_IMAGE_TYPE_1D, the value of extent.width must be
less than or equal to the value of
VkPhysicalDeviceLimits::maxImageDimension1D, or the value of
VkImageFormatProperties::maxExtent.width (as returned by
vkGetPhysicalDeviceImageFormatProperties with values of format,
type, tiling, usage and flags equal to those in this structure) -
whichever is higher"
We'll fix up the arguments to isl to keep isl strict in what it expects.
|
|
|
|
|
|
| |
We need to make sure GEM understands that we're writing to the BO, in
case it needs to synchronize with other rings (blitter use in display
server, for example).
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit c136672c593399e831db0da8b8cc6d8a5d73c1d3.
We still have the intermittent missing flush for VkEvent in certain
vulkancts cases:
piglit.deqp-vk.api.command_buffers.execute_large_primary
piglit.deqp-vk.api.command_buffers.submit_count_non_zero,
Let's reenable the snooping until we figure out the root cause.
|
|
|
|
|
|
|
| |
Change the name of the .so to libvulkan_intel.so and add an installable
icd with the installed paths. Keep the icd file with build-tree paths,
but rename to dev_icd.json to make it clear that it's for development
purposes.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Fix a NULL pointer dereference in anv_CreateInstance in case
the pApplicationInfo field of the supplied VkInstanceCreateInfo
structure is NULL [1].
[1] https://www.khronos.org/registry/vulkan/specs/1.0/apispec.html#VkInstanceCreateInfo
Signed-off-by: Philipp Zabel <[email protected]>
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Probably this should be picked up from <vulkan.h> directly, or we should
just assume that any 1.0.x is legal.
|
|
|
|
|
| |
We disable the fragment shader for depth/stencil-only pipelines. This
commit makes that work for gen7.
|
|
|
|
|
| |
This lets us share the renderpass code and depth/stencil state code
between gen 7 and gen 8.
|
|
|
|
| |
We need the 3D pipeline for the initial setup, not GPGPU.
|
|
|
|
|
| |
We need to pull this from the render pass information at state flush
time.
|
| |
|
| |
|
|
|
|
|
|
| |
This is a little more subtle. If elem_count is 0, nothing else happens
in this function, so we return early to avoid warning about
uninitialized 'p'.
|
| |
|
|
|
|
|
| |
It's required by the spec and any shaders that don't set it will be broken.
I'm not really sure how multisampling was even working before...
|
|
|
|
|
|
| |
The race we were seeing on cherryview was caused by the multi-submit
problem with fences. We can now turn snooping off again an rely on
clflush and we intended.
|
|
|
|
|
|
| |
We were submitting the fence bo after each command buffer in a multi
command buffer submit, causing us to occasionally complete the fence too
early.
|
|
|
|
|
|
|
| |
We hash the input SPIR-V, specialization constants, entrypoint and the
shader key using SHA1 to determine a unique identifier for the
combination. A VkPipelineCache is then a hash table mapping these
identifiers to the corresponding prog_data and kernel data.
|
|
|
|
|
|
|
|
| |
Long ago, the blit code used to handle clearing and blitting.
- Fix any comments that refer to clearing.
- Rename shader var 'attr' to 'tex_pos'. The name 'attr' is an artifact
of the time when the shader was used for blitting as well as clearing.
|
|
|
|
|
|
|
| |
Just a refactor. No behavior change.
Several expressions have the same value: they point to
glsl_vec4_type(). Coalesce them into a single variable.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The clear code lived in anv_meta_clear.c. The resolve code in
anv_meta_resolve.c. Only the blit code lived in anv_meta.c, alongside
the shareed meta code.
This is just a copy-paste patch. No change in behavior.
|
|
|
|
|
|
|
| |
Trivial cleanup. No change in behavior.
Function argument 'attr_flat', in anv_meta.c:build_nir_vertex_shader(),
was always false.
|
| |
|
|
|
|
|
|
| |
Aparently there are some issues in symbol resolution if an application
packages its own loader and you have a system-installed one. I don't
really understand the details, but it's not onorous to add.
|
|
|
|
|
|
|
| |
The immediate write from PIPE_CONTROL is 64-bits at least on BDW. This
used to work on 64-bit archs because the compiler would align the following
anv_state struct up for us. However, in 32-bit builds, they overlap and it
causes problems.
|
| |
|
| |
|
|
|
|
|
| |
We also didn't add start to field.end to get the absolute field end
position.
|
| |
|
|
|
|
|
|
| |
A few packets have dwords in them that are all MBZ and we failed to
write those. This change makes sure we iterate through all dwords and
write them all.
|
|
|
|
| |
We need to be able to find the generated nir_opcodes.h header.
|
|
|
|
|
|
| |
This huge commit switches us over to using a simple xml format (genxml)
for defining our command streamer commands and a python script for
generating the pack headers we use in the driver.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
The tests assertion-failed in vkCmdClearDepthStencilImage because the
isl surface lacked ISL_SURF_USAGE_DEPTH_BIT.
Fixes: https://gitlab.khronos.org/vulkan/mesa/issues/26
Fixes: dEQP-VK.pipeline.timestamp.transfer_tests.host_stage_with_clear_depth_stencil_image_method
Fixes: dEQP-VK.pipeline.timestamp.transfer_tests.transfer_stage_with_clear_depth_stencil_image_method
|
|
|
|
|
| |
- Rename local var isl_flags -> isl_usage.
- Fix comment.
|
|
|
|
|
|
|
|
| |
Don't translate VkImageCreateInfo::usage into an isl_surf_usage bitmask.
Instead, translate anv_image::usage, which is a superset of
VkImageCreateInfo::usage.
For-Issue: https://gitlab.khronos.org/vulkan/mesa/issues/26
|
| |
|
|
|
|
|
| |
isl now understands depth formats. We no longer need depth formats in
the anv_format table.
|
|
|
|
| |
Because that's what it is, an isl format.
|