GPU/Pitfalls: Difference between revisions
Mostly based on findings by yuriks |
mNo edit summary |
||
(3 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
=== Vertex attribute alignment === | === Vertex attribute alignment === | ||
Vertex components which are defined through [[GPU/Internal_Registers#GPUREG_ATTRIBBUFFERi_CONFIG1|GPUREG_ATTRIBBUFFERi_CONFIG1]] will be aligned. | Vertex components which are defined through [[GPU/Internal_Registers#GPUREG_ATTRIBBUFFERi_CONFIG1|GPUREG_ATTRIBBUFFERi_CONFIG1]] will be accessed aligned by the GPU. | ||
* Vertex attributes will be aligned to their component element size. | * Vertex attributes will be aligned to their component element size. | ||
* Padding attributes (Component type > 11) will always aligned to 4 byte offets into the buffer. | * Padding attributes (Component type > 11) will always aligned to 4 byte offets into the buffer. | ||
* The stride which is passed to the GPU should be passed unaligned. | |||
=== Vertex stride in GPUREG_ATTRIBBUFFERi_CONFIG2 === | === Vertex stride in GPUREG_ATTRIBBUFFERi_CONFIG2 === | ||
Line 19: | Line 20: | ||
=== Output mapping in GPUREG_SH_OUTMAP_MASK === | === Output mapping in GPUREG_SH_OUTMAP_MASK === | ||
The output | The output masking in [[GPU/Internal_Registers#GPUREG_SH_OUTMAP_MASK|GPUREG_SH_OUTMAP_MASK]] influences how the registers starting at [[GPU/Internal_Registers#GPUREG_SH_OUTMAP_Oi|GPUREG_SH_OUTMAP_Oi]] map to outputs in the shader. | ||
If an output is disabled in [[GPU/Internal_Registers#GPUREG_SH_OUTMAP_MASK|GPUREG_SH_OUTMAP_MASK]] it means that no slot in the [[GPU/Internal_Registers#GPUREG_SH_OUTMAP_Oi|GPUREG_SH_OUTMAP_Oi]] registers is consumed. | If an output is disabled in [[GPU/Internal_Registers#GPUREG_SH_OUTMAP_MASK|GPUREG_SH_OUTMAP_MASK]] it means that no slot in the [[GPU/Internal_Registers#GPUREG_SH_OUTMAP_Oi|GPUREG_SH_OUTMAP_Oi]] registers is consumed. | ||
[[GPU/Internal_Registers#GPUREG_SH_OUTMAP_TOTAL|GPUREG_SH_OUTMAP_TOTAL]] configures the number of used consecutive slots in the outmap. | [[GPU/Internal_Registers#GPUREG_SH_OUTMAP_TOTAL|GPUREG_SH_OUTMAP_TOTAL]] configures the number of used consecutive slots in the outmap. | ||
Line 53: | Line 55: | ||
== Shaders == | == Shaders == | ||
=== | === Configued Output components must be written exactly once === | ||
Each configured output component has to be written exactly once or the PICA freezes. | Each configured output component has to be written exactly once or the PICA freezes. |