Commit graph

2767 commits

Author SHA1 Message Date
vlj cfe058dc82 d3d12: Factorize texture upload code 2015-08-12 00:26:30 +02:00
raven02 ce857ab1da RSX: DP2A for fragment decompiler 2015-08-12 00:26:30 +02:00
vlj caf863be4d d3d12: Fix crash at exit 2015-08-12 00:26:29 +02:00
vlj 5882f9defb d3d12: Do not use texture pitch but compute it ourself
Fix sonic cd splash screen
2015-08-12 00:26:29 +02:00
vlj f31282623a d3d12: Fix texture unswizzling 2015-08-12 00:26:28 +02:00
raven02 25c09c5088 d3d12: Add Blend Op 2015-08-12 00:26:28 +02:00
vlj a2b8d3a885 d3d12: Fix memleak 2015-08-12 00:26:27 +02:00
raven02 76d52b4bb3 d3d12: Implement A4R4G4B4 texture format with byte swapped
Make the guided fate paradox works
2015-08-12 00:26:27 +02:00
vlj 593b9a494d d3d12: Double texture storage size 2015-08-12 00:26:27 +02:00
vlj d886fd55d3 d3d12: Fix for size calculation 2015-08-12 00:26:26 +02:00
vlj a751a06d01 d3d12: Try not to overcommit texture memory 2015-08-12 00:26:26 +02:00
vlj a5fb8c95f4 d3d12: Fix interframe sync 2015-08-12 00:26:25 +02:00
vlj ac352cd083 d3d12: Use custom loadvertex like call 2015-08-12 00:26:25 +02:00
vlj b63c77ca7d d3d12: Swap current/non current right after present has been called 2015-08-12 00:26:24 +02:00
vlj 9e2dfcaba3 d3d12: fix memleak 2015-08-12 00:26:24 +02:00
vlj 7db3599648 d3d12: Ping pong between data to avoid gpu stall as much as possible 2015-08-12 00:26:23 +02:00
vlj 461bf12c4f d3d12: Cleaning 2015-08-12 00:26:23 +02:00
vlj 51d287d9b0 d3d12: Take alignment into account in streamBuffer
And use it for texture upload
2015-08-12 00:26:22 +02:00
vlj 878a116c4a Rebasing didn't went quite right...Fixes 2015-08-12 00:26:22 +02:00
vlj 3a6abe1656 d3d12: fix crash when inferring texture size 2015-08-12 00:26:21 +02:00
vlj 9748007cd3 d3d12: Use ring buffer for textures too
It looks like the texture size calculation is wrong, it can lead to
crash
2015-08-12 00:26:21 +02:00
vlj 6bb5dd2125 d3d12: Use ring like buffer for vertex index data 2015-08-12 00:26:20 +02:00
vlj f721f2cbaa d3d12: Use ring like heap for vertex and fragment constants too 2015-08-12 00:26:20 +02:00
vlj 59aca7566e d3d12: Some fixes to avoid running out of constant spaces 2015-08-12 00:26:19 +02:00
vlj e0cff6b0b4 d3d12: Start using a ring-like buffer for constants 2015-08-12 00:26:19 +02:00
vlj c1abf80b40 d3d12: Fix r5g6b5 only using half texture 2015-08-12 00:26:19 +02:00
vlj 5ca02a5053 d3d12: Fix R5G6B5 being byte swapped 2015-08-12 00:26:18 +02:00
vlj d8d72c4327 d3d12: Implement R5G6B5 texture format
Make sonic works, but with wrong color
2015-08-12 00:26:18 +02:00
vlj 25b10c5e3e d3d12: Consume less descriptor slot if not required 2015-08-12 00:26:17 +02:00
vlj 043adab2ce d3d12: Fix fragment constant filling
The command buffer does not necessarily set them in order...
2015-08-12 00:26:16 +02:00
vlj 1c803e725b d3d12: Do not overwrite hlsl file 2015-08-12 00:26:16 +02:00
vlj 0b435afd1d d3d12: Fix some texture format swizzles. 2015-08-12 00:26:15 +02:00
vlj 3aafb60629 d3d12: Fix offset in scale offset
Depth Buffer should be correctly positionned in depth_read test
2015-08-12 00:26:15 +02:00
raven02 0be60890e7 d3d12: minor fixes 2015-08-12 00:26:14 +02:00
vlj fdf24545af d3d12: Raise texture upload heap to make multi texture work
The result is not in line with PS3 real output though
2015-08-12 00:26:14 +02:00
vlj e454f59f97 d3d12: Fix depth buffer not being transitionned to generic read 2015-08-12 00:26:13 +02:00
vlj aac93b9063 d3d12: Clean code + fix warnings 2015-08-12 00:26:13 +02:00
vlj 001dc7cf57 d3d12: Do not copy fbo, just use new one 2015-08-12 00:26:12 +02:00
vlj 5a57564b0c d3d12: Forgot a hunk 2015-08-12 00:26:12 +02:00
vlj 01ac9f02d2 d3d12: Use placed resource for depth conversion result 2015-08-12 00:26:11 +02:00
vlj 2636fb457e d3d12: Use placed resource for mrt readback
Should be slightly faster (no allocation)
2015-08-12 00:26:11 +02:00
raven02 28c125618a d3d12 : add few more compressed format 2015-08-12 00:26:10 +02:00
raven02 046e522851 d3d12: Add DXT23 & DXT45 2015-08-12 00:26:10 +02:00
vlj 6877e5e3ba d3d12: Start using heap for depth buffer readback 2015-08-12 00:26:09 +02:00
vlj 90fb4396fe d3d12; Add a texture cache 2015-08-12 00:26:08 +02:00
raven02 d8f76f5aee d3d12: Add LogicOp 2015-08-12 00:26:08 +02:00
vlj f382ba0319 d3d12: Enable multiple mrt read 2015-08-12 00:26:07 +02:00
vlj 8e9cdc5fea d3d12: Fix memleak 2015-08-12 00:26:07 +02:00
vlj da328c078a d3d12: Fix cube_mrt.ppu.elf
It should display a (single) blue cube
2015-08-12 00:26:06 +02:00
vlj cef58da879 d3d12: Fix non mrt samples 2015-08-12 00:26:06 +02:00
vlj 595392428d d3d12: First attempt at read color buffer using dma address change
If address of m_context_dma_color_a change, copy the RTT in a texture
that can be used for drawing.
Currently a bit broken, the rtt is used for others textures too...
2015-08-12 00:26:05 +02:00
vlj 3e11598941 d3d12: Fix increment size for sampler and row pitch for swizzled textures 2015-08-12 00:26:05 +02:00
vlj 262d3d0755 d3d12: Fix copyToCellRamAndRelease copy size 2015-08-12 00:26:04 +02:00
vlj 906146d8f6 d3d12: Lower memory storage 2015-08-12 00:26:04 +02:00
vlj f12cb9b519 d3d12: Send RTTs to cell memory when a semaphore is released 2015-08-12 00:26:03 +02:00
vlj 53ac34db35 d3d12: Fix a warning 2015-08-12 00:26:03 +02:00
vlj 74dab18174 d3d12: Use graphic queue to download depth buffer
For now go to the easiest solution and improve later
2015-08-12 00:26:02 +02:00
vlj af69803ee0 d3d12: Factorize resource state change 2015-08-12 00:26:01 +02:00
vlj 3a029efbd3 d3d12: Add D8R8G8B8 format to texture
Should fix human.ppu.elf
2015-08-12 00:26:01 +02:00
vlj 68a62f897d d3d12: Fix texture loading for fw_fog.ppu.elf
Color are wrong though
2015-08-12 00:26:00 +02:00
vlj 7b571aab70 d3d12: Start supporting dxtc1 format 2015-08-12 00:26:00 +02:00
vlj b5a7637b49 d3d12: Implement texture swizzling and untiling 2015-08-12 00:25:59 +02:00
vlj 52a68875fc d3d12: Add some other texture case + factorise resource desc code 2015-08-12 00:25:59 +02:00
vlj 88d05a08cf d3d12: Use a dummy texture to fill unused slots 2015-08-12 00:25:58 +02:00
vlj 79420e52a2 d3d12: Disable depth test if not required 2015-08-12 00:25:58 +02:00
vlj f77e2acfbe d3d12: Start supporting mrt 2015-08-12 00:25:57 +02:00
vlj c167a1228e d3d12: Revert back to a signel resource storage
Using two of them doesnt increase perf atm but eats twice the space
2015-08-12 00:25:57 +02:00
vlj b81fd13232 d3d12: Fix double release 2015-08-12 00:25:56 +02:00
vlj 7a431e85f6 d3d12: Use copy queue to transfer z buffer 2015-08-12 00:25:56 +02:00
vlj f618247937 d3d12: Fix format of depth texture 2015-08-12 00:25:55 +02:00
vlj b50ab149d6 d3d12: Convert depth buffer on gpu 2015-08-12 00:25:55 +02:00
vlj 56853de0ef d3d12: Do not bind depth stencil buffer if depth test is disabled 2015-08-12 00:25:54 +02:00
vlj 1228787355 d3d12: DMA depth buffer when semaphore write is asked. 2015-08-12 00:25:54 +02:00
vlj b72d435ce8 d3d12: fix stencil reflect again 2015-08-12 00:25:53 +02:00
vlj bc25f4d6ad d3d12: Make waiting thread sleeping 2015-08-12 00:25:53 +02:00
vlj 9c193e0282 d3d12: Implement semaphore 2015-08-12 00:25:52 +02:00
vlj c5a1f8930f d3d12: Another fix for vertex buffer not big enough buffer 2015-08-12 00:25:52 +02:00
vlj 233450a7ca d3d12: Fix stencil reflect test 2015-08-12 00:25:51 +02:00
vlj 8bd678afc0 d3d12: Fix vertex buffer reconstruction with mismatching stride 2015-08-12 00:25:51 +02:00
vlj 8ad1bc1970 d3d12: Fix powerOf2Align 2015-08-12 00:25:50 +02:00
vlj 10cc2c080c d3d12: Try to reconstruct packed vertex buffers 2015-08-12 00:25:50 +02:00
vlj 2709a3e49a d3d12: Use streaming buffer for index buffer 2015-08-12 00:25:49 +02:00
vlj 90e0a89e9b d3d12: Try to use stream function that doesn't pollute cache 2015-08-12 00:25:49 +02:00
vlj 8b8385b0a4 d3d12: Reduce heap size 2015-08-12 00:25:48 +02:00
vlj a6770813b1 d3d12: Fix var not initialized 2015-08-12 00:25:48 +02:00
vlj e9fab57a0e d3d12: Fix indexed quad draw
We were not positionning the index buffer correctly in the heap.
2015-08-12 00:25:47 +02:00
vlj 82545a7b56 d3d12: Clean indexed draw buffer gen code 2015-08-12 00:25:47 +02:00
vlj 22f413be3a d3d12; Live buffer related code and factorise resource_desc for buffers 2015-08-12 00:25:46 +02:00
raven02 9814a92a25 Tex: define more sampler parameters 2015-08-12 00:25:45 +02:00
vlj cd951af664 d3d12: Fix to run fw_vertex_attribute.ppu.elf
A little dirty, need to be improved.
2015-08-12 00:25:45 +02:00
vlj 2df1220144 d3d12: Use GL enum for primitive type 2015-08-12 00:25:44 +02:00
vlj b8073b4e75 d3d12: Try to fix forced quad indexed buffer 2015-08-12 00:25:44 +02:00
vlj 232c97cc82 d3d12: Add support for indexed draw 2015-08-12 00:25:43 +02:00
vlj 5ce0261265 d3d12: Release index buffer and upload command allocator 2015-08-12 00:25:43 +02:00
vlj bd68d382bd d3d12: Use __mm_stream_si128 to send texture/constants data 2015-08-12 00:25:42 +02:00
vlj 12fc6e6145 d3d12: Use separate vertex constant buffer for good 2015-08-12 00:25:42 +02:00
vlj 6d61e36f5d d3d12: Fix for rsx_fp_dynamic_test2
The compare function shouldn't be swizzled.
2015-08-12 00:25:41 +02:00
vlj 824b9aa628 d3d12: make depth read optionnal 2015-08-12 00:25:41 +02:00
vlj 487fd4dc2a d3d12: Start implementing depth to u8 conversion shader
Not used atm
2015-08-12 00:25:40 +02:00
vlj e88d45b1bf d3d12: Fix for Intel HD4600 2015-08-12 00:25:40 +02:00