nCine::RHI::GS namespace

PlayStation 2 fixed-function Graphics Synthesizer backend, selected by WITH_RHI_GS.

Driven by writing GIF packets to the hardware directly, so there is no graphics library between the engine and the GS. Render targets are available — one is nothing but an address written into FRAME.FBP — but there is no programmable stage at all, so effects arrive as nCine::RHI::FixedFunctionPass. Its local memory is small enough to be the port's binding constraint, which is why the backend has a suballocator of its own in nCine::RHI::GS::GsVram.

Namespaces

namespace UniformTypeInfo
Free-function helpers that classify reflected uniform types (component count, float-ness).

Classes

class GsAttribute
Reflected metadata of a single active vertex attribute (aliased as RHI::Attribute).
class GsBuffer
Host-memory buffer object of the GS backend (aliased as RHI::Buffer).
class GsDebug
Debug-output and object-labelling stub of the GS backend.
class GsDevice
Pipeline-state and draw-call facade of the GS backend (aliased as RHI::Device).
class GsFramebuffer
Framebuffer stub of the GS backend (aliased as RHI::Framebuffer).
class GsRenderbuffer
Renderbuffer stub of the GS backend (aliased as RHI::Renderbuffer).
class GsRenderTarget
Off-screen render target of the GS backend (aliased as RHI::RenderTarget).
class GsRhiCapabilities
Runtime capabilities of the Graphics Synthesizer backend.
class GsShader
Shader-object stub of the GS backend.
class GsShaderProgram
Shader program of the GS backend (aliased as RHI::ShaderProgram).
class GsShaderUniformBlocks
Manages the uniform-block caches of a program (aliased as RHI::ShaderUniformBlocks).
class GsShaderUniforms
Manages the loose-uniform caches of a program (aliased as RHI::ShaderUniforms).
class GsStagingBuffer
Main-memory scratch a GIF transfer can be issued from.
class GsTexture
Texture object of the GS backend (aliased as RHI::Texture).
class GsUniform
Reflected metadata of a single active uniform (aliased as RHI::Uniform).
class GsUniformBlock
Reflected metadata of a single active uniform block (aliased as RHI::UniformBlock).
class GsUniformBlockCache
Caches the contents of a uniform block (aliased as RHI::UniformBlockCache).
class GsUniformCache
Caches the host-side value of a single uniform (aliased as RHI::UniformCache).
class GsVertexArray
Vertex array object stub of the GS backend (aliased as RHI::VertexArray).
class GsVertexFormat
Vertex layout description of the GS backend (aliased as RHI::VertexFormat).
class GsVram
Page allocator for the Graphics Synthesizer's 4 MB of local memory.
struct GsVramLayout
Static layout of the Graphics Synthesizer's local memory, as requested by the device.

Enums

enum class GsPsm : std::uint8_t { Ct32 = 0x00, Ct24 = 0x01, Ct16 = 0x02, Ct16S = 0x0A, T8 = 0x13, T4 = 0x14 }
Pixel storage mode of a Graphics Synthesizer buffer (the PSM field of TEX0/FRAME).

Enum documentation

enum class nCine::RHI::GS::GsPsm : std::uint8_t

Pixel storage mode of a Graphics Synthesizer buffer (the PSM field of TEX0/FRAME).

Only the modes this backend can actually place in video memory are listed. The enumerator values are the hardware ones, so they can be written into a register field directly.

Enumerators
Ct32

RGBA8888

Ct24

RGB888 (stored in 32-bit cells, upper byte unused)

Ct16

RGBA5551

Ct16S

RGBA5551, "scrambled" page layout

T8

8-bit indexed, colours through a CLUT

T4

4-bit indexed, colours through a CLUT