Commit graph

2767 commits

Author SHA1 Message Date
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
vlj cb14697aa0 d3d12: Honor adaptater selection + debug output layer 2015-08-12 00:25:39 +02:00
vlj 6e8b94a7e1 Add config option for d3d debug layer and adaptater 2015-08-12 00:25:39 +02:00
vlj 18e3e74070 d3d12: Fix depth read size 2015-08-12 00:25:38 +02:00
vlj c08ac779f4 d3d12: src and dst were inverted, fix it
now depth buffer is properly read, but it is too little
2015-08-12 00:25:38 +02:00
vlj 2031944792 d3d12: Do transition when reading depth buffer 2015-08-12 00:25:37 +02:00
vlj fafcce6d5f d3d12: Implement write depth buffer callback 2015-08-12 00:25:37 +02:00
vlj 986a39fcfb d3d12: clean upload command lists as well 2015-08-12 00:25:36 +02:00
vlj 75202ac55b d3d12: properly clean textures 2015-08-12 00:25:36 +02:00
vlj 1076727c75 d3d12: Use a heap for scale offset and fragment buffer too 2015-08-12 00:25:35 +02:00
vlj 740354d2c9 d3d12: Fix depth format mismatch 2015-08-12 00:25:35 +02:00
vlj e6146e4ecb d3d12: Fix single channel texture
Should now display font properly
2015-08-12 00:25:34 +02:00
vlj 4a89432d39 d3d12: Implement blend decoding 2015-08-12 00:25:34 +02:00
vlj 312ff7e8f5 RSX: Fix for default value of temp reg 2015-08-12 00:25:33 +02:00
vlj 727f54dd32 d3d12: Record command while gpu is busy rendering previous frame + cleaning fixes 2015-08-12 00:25:33 +02:00
vlj 71b9caf65a d3d12: Duplicate all resource to do real double buffering 2015-08-12 00:25:32 +02:00
vlj 5872144165 d3d12: Move texture code to another file + add the copy command as soon as possible 2015-08-12 00:25:32 +02:00
vlj abbd244376 d3d12: Fix fractal not animated in dynamic test 2 2015-08-12 00:25:31 +02:00
raven02 1471afcfe6 D3DGS naming fix 2015-08-12 00:25:31 +02:00
vlj b5f91a6e75 d3d12: Fix for vertex decompiler 2015-08-12 00:25:30 +02:00
raven02 b2577833f9 d3d12: DP2A 2015-08-12 00:25:30 +02:00
vlj 31ea9068de d3d12: Use true default value for vertex decompiler 2015-08-12 00:25:29 +02:00
raven02 9fc50fcce5 d3d12: Fix for vertex decompiler 2015-08-12 00:25:29 +02:00
vlj a9425fcf2a d3d12: Pass first clear value as clear optimised value to RTTs 2015-08-12 00:23:52 +02:00
vlj eb1b8b748a d3d12: Fix for fragment decompiler 2015-08-12 00:23:51 +02:00
vlj f2985f12c1 d3d12: Use heap for vertex buffer
It should consume less memory.
2015-08-12 00:23:51 +02:00
Zangetsu38 2aedd0633f Fix crash after launch game one mode release.
Fix Temporary.
2015-08-12 00:23:50 +02:00
vlj 7b25483b67 d3d12: depth read doesnt crash anymore 2015-08-12 00:23:50 +02:00
vlj 3f31976080 d3d12: Update 2015-08-12 00:23:49 +02:00
vlj 422a9f1fdc d3d12: Use VertexProgramDecompiler 2015-08-12 00:23:49 +02:00
vlj d2beafca4d d3d12: Update 2015-08-12 00:23:48 +02:00
vlj 5681781ab0 GL: Forgot hunk 2015-08-12 00:23:48 +02:00
vlj 05d6c8df60 d3d12: Update 2015-08-12 00:23:47 +02:00
vlj 07449abfc6 d3d12: Add more functions 2015-08-12 00:23:47 +02:00
vlj 72c84cb8aa d3d12: Add some more functions 2015-08-12 00:23:46 +02:00
vlj bf8a48e3bd d3d12: Some work to decompiler 2015-08-12 00:23:46 +02:00
vlj c465b6699a d3d12: Use the fragment decompile class 2015-08-12 00:23:45 +02:00
vlj edb9a97c17 d3d12: Some fix to quad emulation mode 2015-08-12 00:23:45 +02:00
vlj 445c7dd884 d3d12: Use a default value of 1 for .w channel of output in Vertex Program 2015-08-12 00:23:44 +02:00
vlj 2985f2d6e3 d3d12: Use naive vertex buffer offset 2015-08-12 00:23:44 +02:00
vlj a279aebf31 d3d12: Use an indexed draw for unindexed quad 2015-08-12 00:23:43 +02:00
vlj cbd7d3d614 d3d12: Fix depth being offseted by .5 + add depth buffer support 2015-08-12 00:23:43 +02:00
vlj 5640e81eb5 d3d12: Forgot hunk 2015-08-12 00:23:42 +02:00
vlj 4114df50c2 d3d12: Use correct VS debug macro + cleaning 2015-08-12 00:23:41 +02:00
vlj 1f9c8f757a d3d12: Add a swizzle to texture
Looks like shader4componentmapping doesnt work, maybe a bug.
2015-08-12 00:23:41 +02:00
vlj 3a75e6a357 d3d12: Some fixe to textures 2015-08-12 00:23:40 +02:00
vlj 39039514d1 d3d12: Start implementing texture upload and usage 2015-08-12 00:23:39 +02:00
vlj 263294d263 d3d12: Some fixes to VP/FP decompiler 2015-08-12 00:23:39 +02:00
vlj 43f4ed49b4 d3d12: Some fix for VPDecompiler 2015-08-12 00:23:38 +02:00
vlj 16e8d6349e d3d12: Make compilation more robust 2015-08-12 00:23:38 +02:00
vlj f1ab5abe2e d3d12: Cleaning 2015-08-12 00:23:37 +02:00
vlj c3e162b442 d3d12: Read constants directly from fp 2015-08-12 00:23:37 +02:00
vlj 7b6ad026c6 d3d12: Add fragment constant offset cache 2015-08-12 00:23:36 +02:00
vlj 9d1993cdee d3d12: Fix for d3d12 pipeline cache 2015-08-12 00:23:36 +02:00
vlj ba66992ee3 d3d12: Use template class for caching 2015-08-12 00:23:35 +02:00
vlj a58974eac8 d3d12: Fix reversed output 2015-08-12 00:23:34 +02:00
vlj 2ac3c66c80 d3d12: Fix hash/compare/getSize for fragment program
It didn't properly take constants into account
2015-08-12 00:23:34 +02:00
vlj d1ebc47867 d3d12: Use actual hw in release mode + honor vsync option 2015-08-12 00:23:33 +02:00
vlj 5cb0fe63b8 d3d12: Avoid recompiling fragment shader if constants change 2015-08-12 00:23:33 +02:00
vlj 789ed767e2 d3d12: Move Constant inside main 2015-08-12 00:23:32 +02:00
vlj f446501339 d3d12: Try to fix fragment shaders first test 2015-08-12 00:23:32 +02:00
vlj 98a924874f d3d12: Inline constants
It's slow
2015-08-12 00:23:31 +02:00
vlj b6cc7af8cd d3d12: Support for fragment constants 2015-08-12 00:23:31 +02:00
vlj 88aea70100 d3d12: some fix for fragment program decompiler 2015-08-12 00:23:30 +02:00
vlj c96bc6231c d3d12: Print fps in windows title 2015-08-12 00:23:30 +02:00
vlj a276391e87 d3d12: Fix linkage between VS and PS 2015-08-12 00:23:29 +02:00
vlj ee3e5cfe1f d3d12: Support for fragment constant buffer 2015-08-12 00:23:29 +02:00
vlj 9cb87552b8 d3d12: Fragment program decompiler can decompile basic shader 2015-08-12 00:23:28 +02:00
vlj bb643070bd d3d12: Start working on fragment decompiler 2015-08-12 00:23:28 +02:00
vlj 5da166b26b d3d12: Move/clean code 2015-08-12 00:23:27 +02:00
vlj caab6cbc60 d3d12: Some cleaning 2015-08-12 00:23:27 +02:00
vlj 16f40fb69c d3d12: Fix some warnings 2015-08-12 00:23:26 +02:00
vlj 3960555e45 d3d12: Use the compiler vertex program
It works with the primitive sample.
2015-08-12 00:23:26 +02:00
vlj 96c4e87bf5 d3d12: Some extra code again 2015-08-12 00:23:25 +02:00
vlj 5a1b756c14 d3d12: Dump program parameters 2015-08-12 00:23:25 +02:00
vlj 3853dffce2 d3d12: Start working on Vertex program decompilation 2015-08-12 00:23:24 +02:00
vlj 87d51665dc d3d12: Fix some warning 2015-08-12 00:23:24 +02:00
vlj d93e95b614 d3d12: Add support for various primitives 2015-08-12 00:23:23 +02:00
vlj 75219be066 d3d12: cache PSO State too 2015-08-12 00:23:23 +02:00
vlj da5b047c58 d3d12: Change some variable name to better reflect their behavior 2015-08-12 00:23:22 +02:00
vlj b016fbc9e4 d3d12: Add missing hunk + properly clean our D3D allocations 2015-08-12 00:23:22 +02:00
vlj 07ea311b3a d3d12: Separate scaleOffset and classic constants 2015-08-12 00:23:21 +02:00
vlj 40e19e0c95 d3d12: Something strange is happening to depth... 2015-08-12 00:23:21 +02:00
vlj 411265d83a d3d12: Use constant buffer content 2015-08-12 00:23:20 +02:00
vlj d627f9cb83 d3d12: Stop emulation if program compilation fails 2015-08-12 00:23:20 +02:00
vlj 1c2849a736 d3d12: Remove useless class member 2015-08-12 00:23:19 +02:00
vlj 28b964aeb0 d3d12: Fix Input Layout 2015-08-12 00:23:19 +02:00
vlj 65fbc57221 d3d12: Enable constant buffer support 2015-08-12 00:23:18 +02:00
vlj 6f487f910c d3d12: Fix build with DX12_SUPPORT not def 2015-08-12 00:23:18 +02:00
vlj 646c908a93 d3d12: Fix some warnings 2015-08-12 00:23:17 +02:00
vlj 9abaf80099 d3d12: Vertex element are not interleaved. 2015-08-12 00:23:17 +02:00
vlj 8ec9f84c1b d3d12; Factorise IALayout generation code 2015-08-12 00:23:16 +02:00
vlj 14e9323154 d3d12: make some shape appears 2015-08-12 00:23:16 +02:00
vlj fedd35989c d3d12: Start writing vertex/index buffer support 2015-08-12 00:23:15 +02:00
vlj 722e6b8ac5 d3d12: Fix some warning and start adding IALayout support 2015-08-12 00:23:15 +02:00
vlj d2889786a2 d3d12: Some cleaning 2015-08-12 00:23:14 +02:00
vlj c6e2f070ee d3d12: Some fix for creation of PSO 2015-08-12 00:23:14 +02:00
vlj 34bf82d81c d3d12: Add sensible default to PSO 2015-08-12 00:23:14 +02:00
vlj 2734c98716 d3d12: PSO related reorganisation 2015-08-12 00:23:13 +02:00
vlj e58292bb11 d3d12: PSO caching works 2015-08-12 00:23:13 +02:00
vlj 0ebc221011 d3d12: VS Caching apparently fixed 2015-08-12 00:23:12 +02:00