|
|
|
@ -140,71 +140,6 @@ void GPU::FlushCommands() { |
|
|
|
renderer.Rasterizer().FlushCommands(); |
|
|
|
} |
|
|
|
|
|
|
|
u32 RenderTargetBytesPerPixel(RenderTargetFormat format) { |
|
|
|
ASSERT(format != RenderTargetFormat::NONE); |
|
|
|
|
|
|
|
switch (format) { |
|
|
|
case RenderTargetFormat::RGBA32_FLOAT: |
|
|
|
case RenderTargetFormat::RGBA32_UINT: |
|
|
|
return 16; |
|
|
|
case RenderTargetFormat::RGBA16_UINT: |
|
|
|
case RenderTargetFormat::RGBA16_UNORM: |
|
|
|
case RenderTargetFormat::RGBA16_FLOAT: |
|
|
|
case RenderTargetFormat::RGBX16_FLOAT: |
|
|
|
case RenderTargetFormat::RG32_FLOAT: |
|
|
|
case RenderTargetFormat::RG32_UINT: |
|
|
|
return 8; |
|
|
|
case RenderTargetFormat::RGBA8_UNORM: |
|
|
|
case RenderTargetFormat::RGBA8_SNORM: |
|
|
|
case RenderTargetFormat::RGBA8_SRGB: |
|
|
|
case RenderTargetFormat::RGBA8_UINT: |
|
|
|
case RenderTargetFormat::RGB10_A2_UNORM: |
|
|
|
case RenderTargetFormat::BGRA8_UNORM: |
|
|
|
case RenderTargetFormat::BGRA8_SRGB: |
|
|
|
case RenderTargetFormat::RG16_UNORM: |
|
|
|
case RenderTargetFormat::RG16_SNORM: |
|
|
|
case RenderTargetFormat::RG16_UINT: |
|
|
|
case RenderTargetFormat::RG16_SINT: |
|
|
|
case RenderTargetFormat::RG16_FLOAT: |
|
|
|
case RenderTargetFormat::R32_FLOAT: |
|
|
|
case RenderTargetFormat::R11G11B10_FLOAT: |
|
|
|
case RenderTargetFormat::R32_UINT: |
|
|
|
return 4; |
|
|
|
case RenderTargetFormat::R16_UNORM: |
|
|
|
case RenderTargetFormat::R16_SNORM: |
|
|
|
case RenderTargetFormat::R16_UINT: |
|
|
|
case RenderTargetFormat::R16_SINT: |
|
|
|
case RenderTargetFormat::R16_FLOAT: |
|
|
|
case RenderTargetFormat::RG8_UNORM: |
|
|
|
case RenderTargetFormat::RG8_SNORM: |
|
|
|
return 2; |
|
|
|
case RenderTargetFormat::R8_UNORM: |
|
|
|
case RenderTargetFormat::R8_UINT: |
|
|
|
return 1; |
|
|
|
default: |
|
|
|
UNIMPLEMENTED_MSG("Unimplemented render target format {}", static_cast<u32>(format)); |
|
|
|
return 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
u32 DepthFormatBytesPerPixel(DepthFormat format) { |
|
|
|
switch (format) { |
|
|
|
case DepthFormat::Z32_S8_X24_FLOAT: |
|
|
|
return 8; |
|
|
|
case DepthFormat::Z32_FLOAT: |
|
|
|
case DepthFormat::S8_Z24_UNORM: |
|
|
|
case DepthFormat::Z24_X8_UNORM: |
|
|
|
case DepthFormat::Z24_S8_UNORM: |
|
|
|
case DepthFormat::Z24_C8_UNORM: |
|
|
|
return 4; |
|
|
|
case DepthFormat::Z16_UNORM: |
|
|
|
return 2; |
|
|
|
default: |
|
|
|
UNIMPLEMENTED_MSG("Unimplemented Depth format {}", static_cast<u32>(format)); |
|
|
|
return 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// Note that, traditionally, methods are treated as 4-byte addressable locations, and hence
|
|
|
|
// their numbers are written down multiplied by 4 in Docs. Here we are not multiply by 4.
|
|
|
|
// So the values you see in docs might be multiplied by 4.
|
|
|
|
|