summaryrefslogtreecommitdiffstats
path: root/src/isl/isl.c
Commit message (Collapse)AuthorAgeFilesLines
* isl: Add missing break statement in array pitch calculationChad Versace2016-01-071-0/+1
| | | | Fixes regression in ed98c374bd3f1952fbab3031afaf5ff4d178ef41.
* isl/gen9: Fix array pitch of 3d surfacesChad Versace2016-01-071-1/+14
| | | | | | | | | | | | For tiled 3D surfaces, the array pitch must aligned to the tile height. From the Skylake BSpec >> RENDER_SURFACE_STATE >> Surface QPitch: Tile Mode != Linear: This field must be set to an integer multiple of the tile height Fixes CTS tests 'dEQP-VK.pipeline.image.view_type.3d.format.r8g8b8a8_unorm.*'. Fixes Crucible tests 'func.miptree.r8g8b8a8-unorm.aspect-color.view-3d.*'.
* isl: Refactor func isl_calc_array_pitch_sa_rowsChad Versace2016-01-071-18/+19
| | | | | Update the function to calculate the array pitch is *element rows*, and it rename it accordingly to isl_calc_array_pitch_el_rows.
* isl: Fix image alignment calculationJordan Justen2016-01-071-2/+3
| | | | | | The previous code was resulting in an alignment of 0. Signed-off-by: Jordan Justen <[email protected]>
* isl/gen9: Support ISL_DIM_LAYOUT_GEN9_1DChad Versace2016-01-061-18/+74
|
* isl: Don't align phys_slice0_sa.width twiceChad Versace2016-01-061-2/+2
| | | | | It's already aligned to the format's block width. Don't align it again in isl_calc_row_pitch().
* isl: Prefer linear tiling for 1D surfacesChad Versace2016-01-051-0/+10
|
* isl: Align isl_surf::phys_level0_sa to the format's compression blockChad Versace2016-01-051-7/+17
|
* isl: Align single-level 2D surfaces to compression blockChad Versace2016-01-041-6/+12
| | | | | | This fixes an assertion failure at isl.c:1003. Reported-by: Nanley Chery <[email protected]>
* isl: Add a file for format helpersJason Ekstrand2016-01-041-15/+0
|
* isl: Use isl_align_npot for row_pitchKristian Høgsberg Kristensen2016-01-041-2/+2
| | | | | | | | Many formats are not power-of-two bytes per pixels and we need the non-power-of-two align macro here. This reverts the revert from 4f9a211b, but keeps the change from a827b553 that fixed the yuv if-else mix-up.
* isl: Fix row pitch for linear buffersChad Versace2016-01-041-1/+21
| | | | | | | | | | | | isl always aligned the row pitch to the surface's image alignment. This was sometimes wrong when the surface backed a VkBuffer. For a VkBuffer, the surface's row pitch is set by VkBufferImageCopy::bufferRowLength, whose required alignment is only that of the VkFormat. In particular, VkBuffer rows are packed in many dEQP and Crucible tests. And packed rows are rarely aligned to the surface's image alignment. Fixes: dEQP-VK.pipeline.image.view_type.2d.format.r8g8b8a8_unorm.size.13x13
* isl: Fix swapped if-else in isl_calc_row_pitchChad Versace2016-01-041-2/+2
| | | | The YUV case was applied to non-YUV formats. Oops.
* Revert "isl: Fix assertion failure for npot pixel formats"Jason Ekstrand2015-12-301-2/+2
| | | | This reverts commit 96d1baa88d37c51c94579f650cfd9465d28634f4.
* isl: Fix assertion failure for npot pixel formatsChad Versace2015-12-301-2/+2
| | | | | | | | | When aligning to isl_format_layout::bs (which is the number of bytes in the pixel), use isl_align_npot() instead of isl_align(), because isl_align() works only for power-of-2 alignment. Fixes assertion in dEQP-VK.pipeline.image.view_type.1d.format.r16g16b16_sfloat.size.512x1.
* isl: Tile-align height in image size calculationJason Ekstrand2015-12-301-1/+1
| | | | | This fixes a bunch of gpu hangs on the dEQP-VK.glsl.ShaderExecutor.common group of CTS tests.
* isl: Add func isl_surf_get_image_offset_saChad Versace2015-12-151-2/+122
| | | | | | | | The function calculates the offset to a subimage within the surface, in units of surface samples. All unit tests pass with `make check`. (Admittedly, though, there are too few unit tests).
* isl: Fix calculation of array pitch for layout GEN4_2DChad Versace2015-12-151-0/+1
| | | | | | | The height of the miptree's right half was not large enough. Found by `make check` in test_isl_surf_get_offset, which is added in the next commit.
* isl: Move it a standalone directoryChad Versace2015-12-151-0/+1046
The plan all along was to eventualyl move isl out of the Vulkan directory, because I intended i965 and anvil to share it. A small problem I encountered when attempting to write unit tests for isl precipitated the move. I discovered that it's easier to get isl unit tests to build if I remove the extra, unneeded dependencies injected by src/vulkan/Makefile.am. And the easiest way to remove those unneeded dependencies is to move isl out of src/vulkan. (Unit tests come in subsequent commits).