|
|
@ -833,27 +833,10 @@ void CachedSurface::LoadGLBuffer() {
|
|
|
|
ASSERT_MSG(params.block_width == 1, "Block width is defined as {} on texture type {}",
|
|
|
|
ASSERT_MSG(params.block_width == 1, "Block width is defined as {} on texture type {}",
|
|
|
|
params.block_width, static_cast<u32>(params.target));
|
|
|
|
params.block_width, static_cast<u32>(params.target));
|
|
|
|
|
|
|
|
|
|
|
|
switch (params.target) {
|
|
|
|
if (params.target == SurfaceParams::SurfaceTarget::Texture2D) {
|
|
|
|
case SurfaceParams::SurfaceTarget::Texture2D:
|
|
|
|
|
|
|
|
// TODO(Blinkhawk): Eliminate this condition once all texture types are implemented.
|
|
|
|
// TODO(Blinkhawk): Eliminate this condition once all texture types are implemented.
|
|
|
|
depth = 1U;
|
|
|
|
depth = 1U;
|
|
|
|
block_depth = 1U;
|
|
|
|
block_depth = 1U;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case SurfaceParams::SurfaceTarget::Texture2DArray:
|
|
|
|
|
|
|
|
case SurfaceParams::SurfaceTarget::TextureCubemap:
|
|
|
|
|
|
|
|
depth = 1U;
|
|
|
|
|
|
|
|
block_depth = 1U;
|
|
|
|
|
|
|
|
for (std::size_t index = 0; index < params.depth; ++index) {
|
|
|
|
|
|
|
|
const std::size_t offset{index * copy_size};
|
|
|
|
|
|
|
|
morton_to_gl_fns[static_cast<std::size_t>(params.pixel_format)](
|
|
|
|
|
|
|
|
params.width, params.block_height, params.height, 1U, 1U,
|
|
|
|
|
|
|
|
gl_buffer.data() + offset, copy_size, params.addr + offset);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
|
|
|
LOG_CRITICAL(HW_GPU, "Unimplemented tiled load for target={}",
|
|
|
|
|
|
|
|
static_cast<u32>(params.target));
|
|
|
|
|
|
|
|
UNREACHABLE();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const std::size_t size = copy_size * depth;
|
|
|
|
const std::size_t size = copy_size * depth;
|
|
|
|