mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-11-14 10:09:32 +01:00
Vulkan: Fix image layout issues after compute shader uploads.
We're already in GENERAL so probably not worth to transfer to DST just to do even more transfers due to the silliness of GenerateMip. I'm planning to rework the whole texture upload thing to be far more optimal with some kind of TextureUploadManager Fixes #13987
This commit is contained in:
1 parent
de02c7e90e
commit
c48bdf7efc
5 files changed
+19
-8
No files matched your search
@@ -930,6 +930,7 @@ void TextureCacheVulkan::BuildTexture(TexCacheEntry *const entry) {
|
||||
void *data;
|
||||
bool dataScaled = true;
|
||||
if (replaced.Valid()) {
|
||||
// Directly load the replaced image.
|
||||
data = drawEngine_->GetPushBufferForTextureData()->PushAligned(size, &bufferOffset, &texBuf, pushAlignment);
|
||||
replaced.Load(i, data, stride);
|
||||
entry->vkTex->UploadMip(cmdInit, i, mipWidth, mipHeight, texBuf, bufferOffset, stride / bpp);
|
||||
@@ -1010,7 +1011,7 @@ void TextureCacheVulkan::BuildTexture(TexCacheEntry *const entry) {
|
||||
|
||||
// Generate any additional mipmap levels.
|
||||
for (int level = maxLevel + 1; level <= maxLevelToGenerate; level++) {
|
||||
entry->vkTex->GenerateMip(cmdInit, level);
|
||||
entry->vkTex->GenerateMip(cmdInit, level, computeUpload ? VK_IMAGE_LAYOUT_GENERAL : VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);
|
||||
}
|
||||
|
||||
if (maxLevel == 0) {
|
||||
|
||||
Reference in new issue
Block a user