support more texture sizes

This commit is contained in:
InoriRus
2022-06-10 19:27:34 +10:00
parent 224c692337
commit f1f4302f99
24 changed files with 5240 additions and 303 deletions
@@ -64,6 +64,7 @@ enum class ShaderInstructionType
SBufferLoadDwordx8,
SCbranchExecz,
SCbranchScc0,
SCbranchScc1,
SCbranchVccz,
SCmpEqI32,
SCmpEqU32,
@@ -25,6 +25,18 @@ struct TileSizeAlign
uint32_t align = 0;
};
struct TileSizeOffset
{
uint32_t size = 0;
uint32_t offset = 0;
};
struct TilePaddedSize
{
uint32_t width = 0;
uint32_t height = 0;
};
void TileInit();
void TileConvertTiledToLinear(void* dst, const void* src, TileMode mode, uint32_t width, uint32_t height, bool neo);
void TileConvertTiledToLinear(void* dst, const void* src, TileMode mode, uint32_t dfmt, uint32_t nfmt, uint32_t width, uint32_t height,
@@ -34,7 +46,7 @@ bool TileGetDepthSize(uint32_t width, uint32_t height, uint32_t pitch, uint32_t
TileSizeAlign* stencil_size, TileSizeAlign* htile_size, TileSizeAlign* depth_size);
void TileGetVideoOutSize(uint32_t width, uint32_t height, uint32_t pitch, bool tile, bool neo, TileSizeAlign* size);
void TileGetTextureSize(uint32_t dfmt, uint32_t nfmt, uint32_t width, uint32_t height, uint32_t pitch, uint32_t levels, uint32_t tile,
bool neo, TileSizeAlign* total_size, uint32_t* level_sizes, uint32_t* padded_width, uint32_t* padded_height);
bool neo, TileSizeAlign* total_size, TileSizeOffset* level_sizes, TilePaddedSize* padded_size);
} // namespace Kyty::Libs::Graphics