summaryrefslogtreecommitdiff
path: root/plugins/peopsxgl/pgxp_gpu.c
Commit message (Collapse)AuthorAgeFilesLines
* Added dynstr, fixed NULL pointer accessXavi Del Campo2020-05-021-6/+11
|
* Add texture only visualisationiCatButler2017-03-241-2/+12
|
* Fix issue with flat shaded primitives in colour only modeiCatButler2017-03-191-4/+5
|
* Fix false positive when rendering transparent objects in wireframeiCatButler2017-03-191-1/+5
|
* Add support for new visualisationsiCatButler2017-03-171-219/+149
| | | | | | | - 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-27/+246
| | | | | | | | - 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-13/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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
* Change "valid" flag to multiple bit flagsiCatButler2016-07-041-8/+29
| | | | Validity of a pgxp value can now be set for any of four components using individual bit flags. This also allows the potential expansion of more flag data for each component.
* Imporved CPU integrationiCatButler2016-06-271-10/+24
| | | | | | | | | | | | | | | | | - Change PGXP integration to use wrapper functions - Use modified function lookup tables to call wrappers or default funnctions based on mode - Implement wrappers for interpreter too, recompiler sometimes calls interpreter functions - Add UI elements for selecting CPU modes - Only call precision version of NCLIP in modes where there are not going to be stale vertices in GTE registers - Added support for CP0 co-processor functions - Improve support for CPU functions (still broken in many games) - Improved debug output to show values for inputs before they're modified GPU plugin - Ignore stale vertices (occurs when CPU mode no longer writes to memory) - Add Cyan vertex colouring for stale vertices
* Initial PGXP CPU commitiCatButler2016-06-071-30/+105
| | | | | | | | | | - Restructured project to base interface on PSX instructions - Support for all relevant CPU arithmetic and logic instructions - Debug output available via deferred PGXP calls - Remove most dependencies on PCSXR - Still very much a work in progress (lots of errors) - Add extra debug information to GPU plugin (w values)
* Add PGXP configuration dialogiCatButler2016-05-161-15/+23
| | | | - Allows independent toggling of PGXP, vertex caching and texture correction
* Implement vertex cachingiCatButler2016-05-151-11/+153
| | | | | | | - Try using Blade_Arma's vertex cache to find untracked vertices - Fix GTE_LOG - Add more logging spew - Update debug mode to track cached vertices
* Add PGXP visual debug modeiCatButler2016-05-101-10/+174
| | | | | | | Toggles using F11 Red = low precision Blue = high precision Yellow = Sprite
* More fixes for persective correct buildiCatButler2016-05-061-10/+13
| | | | | | - Switch back to fixed point GTE - Only clamp w to h/2 after divide - Fix vertex function for multi-pass (was overwriting vertexon first pass)
* Ensure w is reset to 1.f to prevent stale values.iCatButler2016-05-031-0/+2
|
* Fix bugs from previousiCatButler2016-05-021-4/+31
| | | | | | | | | | | | 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-9/+65
| | | | | | | | | | | | | - 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.
* - Fix memory addresses as each mirrored address range is further mirrored 4 ↵iCatButler2016-03-281-1/+1
| | | | | | | times... :( - Catch 8bit reads/writes and invalidate registers and memory as needed - Prevent reading over the end of stride and count arrays when decoding primitive commands
* - Move pgxp_gpu source files into correct folder.iCatButler2016-03-261-0/+90
- Trace 16 bit reads and writes, invalidate register or memory (fixes UI glitches)