diff options
author | Kantoch <marcin.kantoch@mobica.com> | 2016-06-17 12:08:59 +0200 |
---|---|---|
committer | Pyry Haulos <phaulos@google.com> | 2016-07-07 12:31:13 -0700 |
commit | 2717400eb6e329f129476b5aaf7c43158a488462 (patch) | |
tree | 80ff626268854a1e3070bb42207402044c7abe9f /doc/testspecs | |
parent | 199c73a9eb28e6ef553e30bdf6b766198a65e796 (diff) | |
download | VK-GL-CTS-2717400eb6e329f129476b5aaf7c43158a488462.tar.gz VK-GL-CTS-2717400eb6e329f129476b5aaf7c43158a488462.tar.bz2 VK-GL-CTS-2717400eb6e329f129476b5aaf7c43158a488462.zip |
Sparse Image Memory Aliasing Test
Diffstat (limited to 'doc/testspecs')
-rw-r--r-- | doc/testspecs/VK/sparse_resources.txt | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/doc/testspecs/VK/sparse_resources.txt b/doc/testspecs/VK/sparse_resources.txt index 18f03f6b3..315e00fb8 100644 --- a/doc/testspecs/VK/sparse_resources.txt +++ b/doc/testspecs/VK/sparse_resources.txt @@ -12,6 +12,7 @@ Includes: 4. Test partially resident image created with VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag bit 5. Test partially resident image with mipmaps, put some mipmap levels in mip tail region 6. Test memory aliasing for fully resident buffer objects +7. Test memory aliasing for partially resident images Description: @@ -117,5 +118,25 @@ and bound to both buffers (buffers share memory). The second queue is used to perform compute and transfer operations. A compute shader is invoked to fill the whole WRITE buffer with data. Afterwards the data from READ buffer is being transfered to non-sparse output buffer. -The validation part retrieves data back from output buffer to host memory. The data is compared against the expected output -from compute shader. The test passes if the data sets are equal.
\ No newline at end of file +The validation part retrieves data back from output buffer to host memory. The data is compared against the expected output +from compute shader. The test passes if the data sets are equal. + +7. Test memory aliasing for partially resident images + +The test creates two partially resident images (READ and WRITE) with VK_IMAGE_CREATE_SPARSE_ALIASED_BIT and VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag bits. +Both images have the same type, format and dimensions. + +The test creates two queues - one supporting sparse binding operations, the second one supporting compute and transfer operations. + +First queue is used to perform binding of device memory to sparse images. The memory bound via VkSparseImageMemoryBind is shared between +both images. The mipmap levels that land in the mip tail region have separate memory regions for both images. + +The second queue is used to perform compute and transfer operations. The test creates two non-sparse buffer objects, +one used as input and the second as output. The input buffer is used to transfer data to READ sparse image to create some initial state. +Afterwards compute shaders are invoked to write data to each mipmap level of WRITE sparse image. The mipmap levels of READ image that share memory with +WRITE image should be overwritten by this operation, the mip tail region should be left intact. Next the data is copied from the READ image to the output buffer. + +The validation part retrieves data back from output buffer to host memory. For each mipmap level that both images share memory for, the data is +compared against the expected output from compute shader. On the other hand for each mipmap level that landed in the mip tail region, the data is compared +against data stored in the input buffer (the compute shader could not have changed this data). The test passes if for each mipmap level +the comparison results in both data sets being the same. |