mirror of
https://github.com/cemu-project/Cemu.git
synced 2024-11-27 05:10:57 +00:00
only set array length for texture view arrays
This commit is contained in:
parent
9095035532
commit
d9f857bcc4
@ -2,6 +2,7 @@
|
|||||||
#include "Cafe/HW/Latte/Renderer/Metal/LatteTextureMtl.h"
|
#include "Cafe/HW/Latte/Renderer/Metal/LatteTextureMtl.h"
|
||||||
#include "Cafe/HW/Latte/Renderer/Metal/MetalRenderer.h"
|
#include "Cafe/HW/Latte/Renderer/Metal/MetalRenderer.h"
|
||||||
#include "Cafe/HW/Latte/Renderer/Metal/LatteToMtl.h"
|
#include "Cafe/HW/Latte/Renderer/Metal/LatteToMtl.h"
|
||||||
|
#include "Metal/MTLTexture.hpp"
|
||||||
|
|
||||||
uint32 LatteTextureMtl_AdjustTextureCompSel(Latte::E_GX2SURFFMT format, uint32 compSel)
|
uint32 LatteTextureMtl_AdjustTextureCompSel(Latte::E_GX2SURFFMT format, uint32 compSel)
|
||||||
{
|
{
|
||||||
@ -158,21 +159,21 @@ MTL::Texture* LatteTextureViewMtl::CreateSwizzledView(uint32 gpuSamplerSwizzle)
|
|||||||
|
|
||||||
uint32 baseLevel = firstMip;
|
uint32 baseLevel = firstMip;
|
||||||
uint32 levelCount = this->numMip;
|
uint32 levelCount = this->numMip;
|
||||||
uint32 baseLayer;
|
uint32 baseLayer = 0;
|
||||||
uint32 layerCount;
|
uint32 layerCount = 1;
|
||||||
// TODO: check if base texture is 3D texture as well
|
|
||||||
|
// TODO: check if base texture is 3D texture as well?
|
||||||
if (textureType == MTL::TextureType3D)
|
if (textureType == MTL::TextureType3D)
|
||||||
{
|
{
|
||||||
cemu_assert_debug(firstMip == 0);
|
cemu_assert_debug(firstMip == 0);
|
||||||
cemu_assert_debug(this->numSlice == baseTexture->depth);
|
cemu_assert_debug(this->numSlice == baseTexture->depth);
|
||||||
baseLayer = 0;
|
|
||||||
layerCount = 1;
|
|
||||||
}
|
}
|
||||||
else
|
// Cube array needs to have layer count multiple of 6 as opposed to when creating a texture
|
||||||
{
|
else if (textureType == MTL::TextureTypeCubeArray || textureType == MTL::TextureType2DArray)
|
||||||
baseLayer = firstSlice;
|
{
|
||||||
|
baseLayer = firstSlice;
|
||||||
layerCount = this->numSlice;
|
layerCount = this->numSlice;
|
||||||
}
|
}
|
||||||
|
|
||||||
MTL::TextureSwizzleChannels swizzle;
|
MTL::TextureSwizzleChannels swizzle;
|
||||||
swizzle.red = GetMtlTextureSwizzle(compSelR);
|
swizzle.red = GetMtlTextureSwizzle(compSelR);
|
||||||
|
Loading…
Reference in New Issue
Block a user