# r[67]xx Errata Sheet This page explains difficult areas of the r[67]xx GPU series, things missing in the official documentation, and describes pitfalls you can fall into. In addition, it also serves as a regular errata sheet, correcting information in the official documentation. [[!toc 1]] # Erratas Only issues known to be wrong in the official documentation will be brought up here. If anything is doubtful, it should be rather added to a later section. ## r600isa.pdf [[r600isa.pdf|http://www.x.org/docs/AMD/r600isa.pdf]] documents the shader unit instruction set. pp. 7-9: Control flow instruction numbers are partially wrong. Some even duplicated. Numbers in [[R6xx_3D_Registers.pdf|http://www.x.org/docs/AMD/R6xx_3D_Registers.pdf]] are apparently correct. [[!format txt """ SQ_CF_INST_CALL is 0x12 (not 0x0d) SQ_CF_INST_CALL_FS is 0x13 (not 0x0f) SQ_CF_INST_CUT_VERTEX is 0x17 (not 0x14) SQ_CF_INST_ELSE is 0x0d (not 0x11) SQ_CF_INST_EMIT_CUT_VERTEX is 0x16 (not 0x13) SQ_CF_INST_EMIT_VERTEX is 0x15 (not 0x12) SQ_CF_INST_JUMP is 0x0a (not 0x10) SQ_CF_INST_KILL is 0x18 (not 0x15) SQ_CF_INST_LOOP_START_DX10 is 0x06 (not 0x04) SQ_CF_INST_MEM_EXPORT is unknown (also RV670 only) SQ_CF_INST_MEM_STREAM3 is 0x23 (not 0x32, decimal description 35 is correct) SQ_CF_INST_POP is 0x0e (not 0x0c) SQ_CF_INST_PUSH is 0x0b (not 0x0a) SQ_CF_INST_PUSH_ELSE is 0x0c (not 0x0b) SQ_CF_INST_RETURN is 0x14 (not 0x0e) """]] # Known Hardware Limitations # Unexplained Hardware Behavior # Additional Documentation # Glossary **Hardware Groups** [[!format txt """ CB Color Block Color buffer DB Depth Block Depth buffer GRBM Graphics Register Block Registers 0x8000-0x2fffc PA Primitive Assembler Scissors, Cliprects, Point sprites SPI Shader Processor Interpolator Semantic mapping, interpolators SQ Sequencer / Shader Shader management, exports, register alloc SRBM System Register Block Registers 0x0000-0x7ffc SX Shader Export Output mapping, output buffers VGT Vertex Grouper Tessellator Everthing related to vertex setup, viewport transformation, etc. """]] **Shaders** Pixel and vertex shader are mandatory. Only one vertex shader at a time. Fetch shader and geometry shader may be disabled (fetch shader by just not using SQ_INST_CALL_FS). [[!format txt """ ES Export Shader Early vertex shader, used w/ GS only FS Fetch Shader Subroutine, may be called in vertex shader context GS Geometry Shader May kill or tessellate primitives VS Vertex Shader Used w/o GS only PS Pixel Shader """]] **Data Structures** [[!format txt """ VB Vertex Buffer List of coordinates and attributes in memory """]] **System** [[!format txt """ DRM Direct Rendering Manager Kernel component for buffer submission and resource management GART Graphics Aperture Remapping Table Main memory mapped in write-combined mode for GPU access GPU Graphics Processing Unit Main r[67]xx chip """]]