summaryrefslogtreecommitdiff
path: root/plugins/peopsxgl/pgxp_gpu.h
Commit message (Collapse)AuthorAgeFilesLines
* Add support for new visualisationsiCatButler2017-03-171-3/+7
| | | | | | | - vertex colour - new primitive type encoding Now displays semi-transparent as coloured wireframe to allow them to be visible without corrupting the colour information.
* Fix some edge cases and imprve depth visualisation:iCatButler2016-09-011-1/+2
| | | | | | | | - Remove upper 4-bits of each vertex as they may contain bad data (THPS) - Check if memory block from DMA is as expected, some primitives are not the first data in the block and preceding data needs to be skipped (HT, A2) - Change depth visualisation to a colour gradient that makes inconsistencies easier to see - Add support for visualising low resolution but consistent depth found in the Ordering Table
* Various CPU updatesiCatButler2016-07-301-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Sign extend values read using LH - Add conversion functions to represent Signed/Unsigned 16-bit ranges - Add overflow and truncation functions for 16-bit ranges - Sign extend imm value in ADD(U) - Add component overflow and truncation to ADD/SUB functions - Construct new value in logic operators where result using inputs is undefined - Return a valid W component from logic operators (if either input has one) - Compare against high value (y), then low value (x) in less than operators - Use doubles and implement overflow for Multiply operations to try to increase accuracy - Use unsigned values in both MUL and DIV operations to make output as accurate as possible - Implement several variants of shift operators. Trying both arithmetically correct and more analytical approaches with varying success. Debug updates - Added ability to force all values to be equal to low precision values before operating on them - Added feature to test output of operations against a tolerance and print only those which fail GPU updates - Colour vertices with valid XY coordinates but no W as cyan to make them easier to spot - Remove cyan colouring for stale vertices (wasn't useful) - Added ability to skip debug rendering when needed (like seeing the output of offscreen rendering applied to a sprite). - Added new mode which shows primitive type
* Add PGXP visual debug modeiCatButler2016-05-101-0/+11
| | | | | | | Toggles using F11 Red = low precision Blue = high precision Yellow = Sprite
* Fix bugs from previousiCatButler2016-05-021-0/+3
| | | | | | | | | | | | Fix stray triangles - Switch to full floating point RTPS/RTPT - Clamp w values to near plane Fix texture corruption in 1.78, copy 2.4 Tweak - Remove matrix replacement - Add W component to vertices - Wrap glVertex3fv calls - Use counter to call glVertex4fv for PGXP vertices only
* Perspective correct texturingiCatButler2016-04-271-1/+2
| | | | | | | | | | | | | - replace calls to glOrtho with new matrix (z value becomes w) - store w value for each vertex - if any vertex does not have a w value set whole polygon to 1.0 - Reset vertex between draw calls to prevent stale w values persisting - validate PGXP values using stored copy of original (allow greater variance) - properly convert addresses before passing to plugin - rework memory to use a single pool with offsets - Implement floating point RTPS/RTPT transform, currently disabled.
* - Move pgxp_gpu source files into correct folder.iCatButler2016-03-261-0/+34
- Trace 16 bit reads and writes, invalidate register or memory (fixes UI glitches)