diff options
| author | gibbed <rick@gibbed.us> | 2017-08-08 01:39:42 -0500 |
|---|---|---|
| committer | gibbed <rick@gibbed.us> | 2017-08-08 01:39:42 -0500 |
| commit | 4a9586202363060ac409e9d7338349a78cea5d84 (patch) | |
| tree | 80b70a5ba58230c8906d450e602581d3b87b72bb | |
| parent | d2d8d6562951ba7207ffa9df06c27471817166ae (diff) | |
GPU: Ensure texture resolves are at least 1x1.
| -rw-r--r-- | src/xenia/gpu/texture_info.cc | 2 | ||||
| -rw-r--r-- | src/xenia/gpu/vulkan/vulkan_command_processor.cc | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/xenia/gpu/texture_info.cc b/src/xenia/gpu/texture_info.cc index bab7a890f..ae0f59042 100644 --- a/src/xenia/gpu/texture_info.cc +++ b/src/xenia/gpu/texture_info.cc @@ -93,6 +93,8 @@ bool TextureInfo::PrepareResolve(uint32_t physical_address, auto& info = *out_info; info.guest_address = physical_address; info.dimension = Dimension::k2D; + assert_true(width > 0); + assert_true(height > 0); info.width = width - 1; info.height = height - 1; info.texture_format = texture_format; diff --git a/src/xenia/gpu/vulkan/vulkan_command_processor.cc b/src/xenia/gpu/vulkan/vulkan_command_processor.cc index 571bacfb2..ccbc5d413 100644 --- a/src/xenia/gpu/vulkan/vulkan_command_processor.cc +++ b/src/xenia/gpu/vulkan/vulkan_command_processor.cc @@ -1012,8 +1012,8 @@ bool VulkanCommandProcessor::IssueCopy() { // Demand a resolve texture from the texture cache. TextureInfo texture_info; TextureInfo::PrepareResolve(copy_dest_base, copy_dest_format, resolve_endian, - dest_logical_width, dest_logical_height, - &texture_info); + dest_logical_width, + std::max(1u, dest_logical_height), &texture_info); auto texture = texture_cache_->DemandResolveTexture(texture_info, copy_dest_format); |
