Commit graph

34 commits

Author SHA1 Message Date
kd-11
9fc1740608 rsx/fp: Fragment program overhaul
- Separate TXB from TXL: They are completely different!
- Properly perform TMU emulation in the fragment shader. Implemens SRGB conversion and alphakill at the moment
- Properly perform ROP emulation in the fragment shader. Implements FRAMEBUFFER_SRGB. While support on the chip looks to be incomplete (and wierd), it does work
- Document some more bits in SHADER_CONTROL register
2018-03-25 13:31:06 +03:00
kd-11
dece1e01f4 rsx: Improve transform constants management
- Removes the duplicate local_transform_constants
- Resets the transform constants on every context reset
- Simplifies the code abit which should make it faster
- NOTE: Transform constants are persistent across context re-init events (VF5)
2018-03-13 18:55:03 +03:00
kd-11
e230867492 rsx: Properly implement raster window offsets 2018-03-13 18:55:03 +03:00
kd-11
bd297d079d rsx: Minor optimizations 2018-02-16 16:14:54 +03:00
Jake
7ca2c444cc rsx: Fix depth clipping 2018-01-14 20:50:55 +03:00
kd-11
d496dbecad rsx: Implement depth clamping 2017-12-31 12:43:40 +03:00
kd-11
b1a1c0251f rsx: Implement variable point size 2017-12-18 10:45:37 +03:00
kd-11
63f261a66d rsx: Improve framebuffer check heuristics for contested memory buffers 2017-12-01 21:00:50 +03:00
kd-11
3730b9d1da rsx: More fixes
- Support for raster offsets in surface descriptors (looks to be unused)
- Do not tag disabled render targets when using MRT (pitch = 64)
- Add missing notify_surface_changed() call for openGL
2017-11-08 13:15:34 +03:00
kd-11
3d05e61f7e rsx/vk: Workaround for polaris primitive restart bug 2017-10-19 12:22:52 +03:00
kd-11
061824a7ec rsx: Add support for batched multidraw
gl: Fix multidraw [WIP]
rsx: Ignore vertex base when data source is generated using arithmetic
vk: Check pending flag before doing fence poke
vk/gl: Fix for inlined array and immediate draws
rsx: Collapse joined draws when batching
2017-09-21 16:17:06 +03:00
kd-11
6eb1786635 rsx: Clamp depth range to [0,1]
- Fixes remaining issues with Ni no Kuni
2017-08-16 23:58:30 +03:00
Jake
d9a693019b rsx/gcm: Implement rsx dma. Refactor gcm/rsx to not be as codependent 2017-08-02 01:33:12 +03:00
kd-11
909f3e9b3e rsx: Support indexed immediate draw via ArrayElement method 2017-03-29 23:06:17 +03:00
kd-11
3ec1fe9ee7 rsx: Fix depth clears on z16 surfaces without stencil
remove some debug code
2017-03-26 16:22:53 +03:00
kd-11
79d114cc06 rsx: Support immediate mode rendering 2017-03-26 16:22:53 +03:00
kd-11
9263999ad1 [rsx/vp] Improve BRB opcode implementation
fix merge issues
2017-02-26 10:17:34 +03:00
raven02
77f8ce503d RSX texture refactor (#2144) 2016-09-19 09:25:49 +08:00
vlj
03c86ae43b rsx: Move inline array to draw_clause structure. 2016-09-17 23:37:52 +02:00
vlj
11858dce1a rsx: Vertex array attributes don't need to be stored outside of regs. 2016-08-27 15:40:41 +02:00
Vincent Lejeune
eb1d4811de rsx: Use a "draw clause" object in rsx_state. 2016-08-05 23:33:40 +02:00
Vincent Lejeune
9e7902455d rsx: Fix warning because of unused arguments 2016-07-31 19:19:21 +02:00
Nekotekina
1c69eb2b73 rsx_method_t extended
rsx_methods.cpp cleanup
2016-07-31 18:16:49 +03:00
Nekotekina
6a9f3040e1 rsx_methods.cpp fix 2016-07-31 18:16:48 +03:00
Vincent Lejeune
4c46bde315 rsx: Inline rsx_state and texture constructors. 2016-07-31 16:48:09 +02:00
Vincent Lejeune
15500d4ee9 rsx: implement serialization of rsx states. 2016-07-30 18:39:26 +02:00
Vincent Lejeune
ac771f951d rsx: Copy state in capture frame call 2016-07-27 20:20:35 +02:00
Vincent Lejeune
8b12379eb3 rsx: Use bitfield template to decode values. 2016-07-27 18:38:36 +02:00
Vincent Lejeune
e9bee80f4b rsx: Use register_decoder for vertex attributes. 2016-07-19 20:28:32 +02:00
raven02
e1ff3f4674 rsx: use fragment_textures_count (#1948)
* rsx:  use fragment_textures_count

* Typo: unknow -> unknown
2016-07-19 22:50:40 +08:00
Nekotekina
ceb4cb59ac Typo fix: comparaison->comparison 2016-07-19 14:17:25 +03:00
Vincent Lejeune
d97cdb9fbf rsx: Gather most rsx commands pretty printing and state modification function in a single file.
rsx_decode.h implements a "rsx_decoders" template class that is specialized for most GCM command
found in rsx command buffer. 3 static members are defined : a "decode" function that turns command
value into a more meaninfull type if applicable (for instance bool for _enabled* command, surface
formats for set_surface_format command...), a "commit_rsx_state" that modifies a given rsx_state
structure when the command is parsed, and a "dump" function used in rsx_debugger for pretty printing.
Hopefully having the 3 functions in a single place for every command will act as a self documenting
list of rsx command buffer opcode.

rsx_state is also expanded into several explicit variables instead of being stored into a u32 array.
This should makes debugging easier (Visual Studio will display the exact value of these member for instance)
as well as preparing rsx_state for serialisation/deserialisation.

The vertex array and textures opcode are not concerned atm for bisecting purpose.
2016-07-17 17:31:53 +02:00
Vincent Lejeune
772706ca4c Factorize rsx state 2016-07-07 21:38:57 +02:00
DHrpcs3
c1be0cf3bf Added missed files 2016-01-06 13:30:24 +02:00