| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The extent previously was supposed to match the mip at a given level
under the assumption that the base address would be that of the mip
as well.
Now however, the base address only matches the offset of the
containing tile. Therefore, enlarge the extent to match that of
phys_slice0, so that we don't draw/fetch in out of bounds territory.
This solution isn't perfect because the base adress isn't always at
the first tile, therefore the assumed valid memory region by the HW
contains some number of invalid tiles on two edges.
|
| |
|
|
|
|
| |
This fixes all the renderpass tests
|
|
|
|
|
| |
Always use a valid buffer format and convert the extent to units of
elements with respect to original image format.
|
|
|
|
|
|
| |
Use a custom VkBufferImageCopy with the user-provided struct as
the base. A few fields are modified when the iview is uncompressed
and the underlying image is compressed.
|
|
|
|
|
|
| |
This is the offset of the tile that contains the mip specified by
isl_surf_get_image_intratile_offset_el(). Used to draw to/from the
specified mip.
|
|
|
|
| |
This value will be used in a later commit.
|
|
|
|
|
| |
This will simplify the usage of
isl_surf_get_image_intratile_offset_el().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When creating an uncompressed ImageView on an compressed Image, the
SurfaceFormat is updated to match the ImageView's. The surface
dimensions must also change so that the HW sees the same size image
instead of a 4x larger one.
Fixes the following error which results from running many VulkanCTS
compressed tests in one shot:
ResourceError (vk.queueSubmit(queue, 1, &submitInfo, *m_fence):
VK_ERROR_OUT_OF_DEVICE_MEMORY at
vktPipelineImageSamplingInstance.cpp:921)
Makes all compressed format tests with a height > 1 pass.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Aligns with formula's presented in Vulkan spec concerning CopyBufferToImage.
18.4 Copying Data Between Buffers and Images
This won't conflict with valid API usage, because:
1) Users are not allowed to create an uncompressed ImageView with a
compressed Image.
see: VkSpec - 11.5 Image Views - VkImageViewCreateInfo's Valid Usage box
2) If users create a differently formatted compressed ImageView with a
compressed Image, the block dimensions will still match.
see: VkSpec - 28.3.1.5 Format Compatibility Classes - Table 28.5
|
|
|
|
|
| |
The buffer image is a flat 2D surface. Each surface represents an
array/depth layer, therefore, the Z-offset is 0 when blitting.
|
|
|
|
|
|
|
|
|
| |
For an uncompressed ImageView of a compressed Image, the
dimensions and offsets are all divided by the appropriate
block dimensions.
We are not yet using an uncompressed ImageView for a
compressed Image, but will do so in a future commit.
|
| |
|
|
|
|
| |
This was lost in commit a71e614d33e8d869bbaced8948349a7180783ab7.
|
|
|
|
| |
Fixes dEQP-VK.api.info.device.properties. I haven't tested any others.
|
|
|
|
|
| |
The pointer has to be 32-byte aligned, but the structs themselves are 2
dwords each, tightly packed.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Some formats require a swizzle in order to map them to actual hardware
formats. This allows us to turn on two new Vulkan formats.
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
If someone actually tries to use them, they won't work, but at least we
don't fail to return format properties now.
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
It was clflushing the nonrt_surface_state structure regardless of
which state structure was actually being initialized.
|
|
|
|
| |
texel buffer access.
|
| |
|
| |
|
|
|
|
| |
These will be needed by image_load_store
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
We need to reemit render targets, so dirtying VK_SHADER_STAGE_VERTEX_BIT
doesn't help us much.
|
|
|
|
|
| |
Otherwise the primary batch will continue using the state base addresses
set by the secondary. Fixes remaining renderpass tests.
|
|
|
|
|
|
| |
Once we begin emitting the correct sample mask,
genX_3DSTATE_SAMPLE_MASK_pack will hit an assertion if the mask contains
too many bits.
|
| |
|
|
|
|
|
| |
This fixes tests which apply different min and mag filters, and depend on
the min filter to be correct.
|
|
|
|
|
| |
This fixes tests which apply different min and mag filters, and depend on the
min filter to be correct.
|
| |
|
|
|
|
|
| |
This goes back to when we didn't have the subpass number in the command
buffer begin info.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
If we don't have a fragment shader, wm_prog_data in undefined.
|
|
|
|
| |
Fixes most renderpass bugs.
|
|
|
|
|
| |
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.
|
| |
|
| |
|