[D3D12] Fix resolve region handling

This commit is contained in:
Triang3l
2018-10-28 13:47:44 +03:00
committed by Triang3l
parent 4162716a54
commit 83c99bc811
40 changed files with 2803 additions and 2387 deletions

View File

@@ -810,8 +810,9 @@ void TextureCache::WriteSampler(SamplerParameters parameters,
bool TextureCache::TileResolvedTexture(
TextureFormat format, uint32_t texture_base, uint32_t texture_pitch,
uint32_t texture_height, uint32_t resolve_width, uint32_t resolve_height,
Endian128 endian, ID3D12Resource* buffer, uint32_t buffer_size,
uint32_t texture_height, uint32_t offset_x, uint32_t offset_y,
uint32_t resolve_width, uint32_t resolve_height, Endian128 endian,
ID3D12Resource* buffer, uint32_t buffer_size,
const D3D12_PLACED_SUBRESOURCE_FOOTPRINT& footprint) {
ResolveTileMode resolve_tile_mode =
host_formats_[uint32_t(format)].resolve_tile_mode;
@@ -867,6 +868,7 @@ bool TextureCache::TileResolvedTexture(
ResolveTileConstants resolve_tile_constants;
resolve_tile_constants.endian_format_guest_pitch =
uint32_t(endian) | (uint32_t(format) << 3) | (texture_pitch << 9);
resolve_tile_constants.offset = offset_x | (offset_y << 16);
resolve_tile_constants.size = resolve_width | (resolve_height << 16);
resolve_tile_constants.host_base = uint32_t(footprint.Offset);
resolve_tile_constants.host_pitch = uint32_t(footprint.Footprint.RowPitch);