[GPU] Disable 3D slice pitch assertion for non-3D textures

This commit is contained in:
Triang3l 2021-06-07 16:40:45 +03:00
parent 22ee200f3e
commit 89ddf6456a
3 changed files with 5 additions and 4 deletions

View File

@ -2692,8 +2692,9 @@ bool TextureCache::LoadTextureData(Texture* texture) {
load_constants.guest_pitch_aligned = level_guest_pitch; load_constants.guest_pitch_aligned = level_guest_pitch;
load_constants.guest_z_stride_block_rows_aligned = load_constants.guest_z_stride_block_rows_aligned =
level_guest_layout.z_slice_stride_block_rows; level_guest_layout.z_slice_stride_block_rows;
assert_zero(load_constants.guest_z_stride_block_rows_aligned & assert_true(dimension != xenos::DataDimension::k3D ||
(xenos::kTextureTileWidthHeight - 1)); !(load_constants.guest_z_stride_block_rows_aligned &
(xenos::kTextureTileWidthHeight - 1)));
uint32_t level_width, level_height, level_depth; uint32_t level_width, level_height, level_depth;
if (level == level_packed) { if (level == level_packed) {

View File

@ -486,7 +486,7 @@ class TextureCache {
// For tiled textures - row pitch in blocks, aligned to 32. // For tiled textures - row pitch in blocks, aligned to 32.
// For linear textures - row pitch in bytes. // For linear textures - row pitch in bytes.
uint32_t guest_pitch_aligned; uint32_t guest_pitch_aligned;
// Must be aligned to 32. // For 3D textures only (ignored otherwise) - aligned to 32.
uint32_t guest_z_stride_block_rows_aligned; uint32_t guest_z_stride_block_rows_aligned;
// vec4 1. // vec4 1.

View File

@ -11,7 +11,7 @@ cbuffer XeTextureLoadConstants : register(b0) {
// For tiled textures - row pitch in blocks, aligned to 32. // For tiled textures - row pitch in blocks, aligned to 32.
// For linear textures - row pitch in bytes. // For linear textures - row pitch in bytes.
uint xe_texture_load_guest_pitch_aligned; uint xe_texture_load_guest_pitch_aligned;
// Must be aligned to 32. // For 3D textures only (ignored otherwise) - aligned to 32.
uint xe_texture_load_guest_z_stride_block_rows_aligned; uint xe_texture_load_guest_z_stride_block_rows_aligned;
// If this is a packed mip tail, this is aligned to tile dimensions. // If this is a packed mip tail, this is aligned to tile dimensions.