Commit graph

2944 commits

Author SHA1 Message Date
Zangetsu38 f0a5641cf0 Fix file not found 2015-08-12 00:28:37 +02:00
Vincent Lejeune 3fe90d9e8d Add DX12 variant of debug/release with and without llvm 2015-08-12 00:28:37 +02:00
Vincent Lejeune 3d486a8ba9 d3d12: Reset gfxHandler in dtor 2015-08-12 00:28:36 +02:00
Vincent Lejeune 11980346c9 Clean an useless added line 2015-08-12 00:28:36 +02:00
vlj 6a408301d7 d3d12: Another fix 2015-08-12 00:28:35 +02:00
vlj 9b10895c38 d3d12: Fix build with latest master 2015-08-12 00:28:35 +02:00
vlj 6fcd0e0421 d3d12: Add semaphorePGRAPHTextureRead 2015-08-12 00:28:34 +02:00
vlj 37cc5e5c11 d3d12: Fix D3D12GSRender member name 2015-08-12 00:28:34 +02:00
vlj 38a809b483 d3d12: Use another sampler heap when using more than 2048 samplers 2015-08-12 00:28:34 +02:00
vlj d2edeafffe d3d12: Remove extra , 2015-08-12 00:28:33 +02:00
vlj b839b86895 d3d12: Fix color for target_none 2015-08-12 00:28:33 +02:00
vlj af181395fc d3d12: Fix warning 2015-08-12 00:28:32 +02:00
vlj 265331117e d3d12: Support targetless flip
Fix PS3Doom
2015-08-12 00:28:32 +02:00
vlj 725b0c606d d3d12: Add some doc 2015-08-12 00:28:31 +02:00
vlj 0e6cd8cd0e d3d12: Fix warnings 2015-08-12 00:28:31 +02:00
vlj ff219c6035 d3d12: Factorise sampler desc creation in a separate function 2015-08-12 00:28:30 +02:00
vlj 612d169b78 d3d12: Add some comments 2015-08-12 00:28:30 +02:00
vlj 8801abb93a d3d12: Refactor index management
Separates it from vertex management and move all the logic (forced
indexing, index count calculation...) outside of GSRender.
2015-08-12 00:28:29 +02:00
vlj 1f3fbe91e2 d3d12: Don't call GetAddress if context_dma is not set 2015-08-12 00:28:29 +02:00
vlj 91809c09d4 d3d12: use memcpy instead of streamToBuffer for alpha settings
streamToBuffer doesn't work well for data < 128 bits
2015-08-12 00:28:28 +02:00
vlj bf394d4f56 d3d12: Support triangle fan
Fix missing character members in the guided fate paradox
2015-08-12 00:28:28 +02:00
vlj 6f0c74cf76 d3d12: Fix crash with write color/depth buffer enabled 2015-08-12 00:28:27 +02:00
vlj 428d66598d d3d12: Move util shader creation in another file 2015-08-12 00:28:27 +02:00
vlj 2cd035d530 d3d12: Fix A1R5G5B5 endianness
Fix color in Retro city rampage
2015-08-12 00:28:27 +02:00
vlj cb0ebad210 d3d12: Fix binding of tex/sampler 2015-08-12 00:28:26 +02:00
vlj 3cc3974466 d3d12: Fix m_ctrl not being properly passed to fragement decompiler
Fix Retro City Rampage
2015-08-12 00:28:26 +02:00
vlj 45b7da6666 d3d12: Mipmap offset is 512byte aligned
Fix retro city rampage crash at startup
2015-08-12 00:28:25 +02:00
vlj 6cb00e681b d3d12: support swizzled CELL_GCM_TEXTURE_A4R4G4B4
Fix terraria menu
2015-08-12 00:28:25 +02:00
vlj 40a3b5c918 d3d12: Mark semaphore location as volatile 2015-08-12 00:28:24 +02:00
vlj a519aa8350 d3d12: Add a (ugly) fix because of some race condition somewhere 2015-08-12 00:28:24 +02:00
vlj 8cf6255d5d d3d12: Fix unneeeded vectors 2015-08-12 00:28:23 +02:00
vlj fc65f181a7 d3d12: Fix a potential crash in GC thread 2015-08-12 00:28:23 +02:00
vlj 16fa3697db d3d12: Use atomic for data heap 2015-08-12 00:28:22 +02:00
vlj de55d64781 d3d12: Make canAlloc function const 2015-08-12 00:28:22 +02:00
vlj fd269f3adc d3d12: Fix alloc function
It may generate wrong result in very rare circumstance, although I never
experienced it.
2015-08-12 00:28:21 +02:00
vlj 3472f75ae0 d3d12: Fix uninitialized variables 2015-08-12 00:28:21 +02:00
vlj d4b83bcf6f d3d12: Try to factorise CPU/GPU descriptor handle gen
I'm still not satisfied with it but I didn't find another way to make it
compact and readable.
2015-08-12 00:28:20 +02:00
vlj 1c7bff4d36 d3d12: Use align instead of powerOf2Align 2015-08-12 00:28:20 +02:00
vlj 5e33d5535d d3d12: Add a TODO notice at the beginning 2015-08-12 00:28:19 +02:00
vlj 141c7ef340 d3d12: Do not cache non buffer vertex attribute
Fix dice test
2015-08-12 00:28:19 +02:00
vlj 73aeda1507 d3d12: Use stream to buffer to upload vertex constants 2015-08-12 00:28:19 +02:00
vlj 2c802735bd d3d12: Fix crash + use ref instead of copying in some for loops 2015-08-12 00:28:18 +02:00
vlj 865445e29b d3d12: Remove m_textureData heap since it wasn't used
Free 512 mb
2015-08-12 00:28:18 +02:00
vlj 8f31211557 d3d12: Avoid copying 8k of constant data per draw call 2015-08-12 00:28:17 +02:00
vlj d88d078f4a d3d12: Fix left over commented code 2015-08-12 00:28:17 +02:00
vlj 5102241ac2 d3d12: Compute texture size in host mem 2015-08-12 00:28:16 +02:00
vlj 4ee66a2680 d3d12: Implement intraframe vertex caching 2015-08-12 00:28:16 +02:00
vlj 294d649012 d3d12: Fix a type warning 2015-08-12 00:28:15 +02:00
vlj d29b82566e d3d12: Fix memleak 2015-08-12 00:28:15 +02:00
vlj c6a5e905bc d3d12: enable texture caching
Bring a little more perf in arkedo 2
2015-08-12 00:28:14 +02:00
vlj 8cc9642b96 Completly unclean way to track texture modification between frames 2015-08-12 00:28:14 +02:00
vlj 03a84cb208 d3d12: Measure time spent uploading texture and vertex 2015-08-12 00:28:13 +02:00
vlj 3f495689c0 d3d12: Ignore texture with 0 width/height
Fix crash in voodoo chronicles.
2015-08-12 00:28:13 +02:00
vlj ad3e50f90f d3d12: Do not guess texture size but use actual value 2015-08-12 00:28:12 +02:00
vlj 628acbf0b4 d3d12: Do not reserve a lot more than necessary. 2015-08-12 00:28:12 +02:00
vlj dbcddcf5e2 d3d12: Clean up texture upload code
Should be easier to read code (and spot bugs).
Fix crash with mipmap and DXTCn texture format.
2015-08-12 00:28:11 +02:00
vlj eda3c9084e d3d12: Fix mipmap data 2015-08-12 00:28:11 +02:00
vlj 178d0e0e85 d3d12: Try implement mipmap
The mipmap level below 0 are currently wrong, find out why
2015-08-12 00:28:11 +02:00
vlj d23cf861f1 d3d12: Factorize ring buffer like code to depth/color buffer migration 2015-08-12 00:28:10 +02:00
vlj dca9ae6ab5 d3d12: Factorize cleaning function for heaps 2015-08-12 00:28:10 +02:00
vlj aa66ddcd86 d3d12: Add some code documentation + rename some functions 2015-08-12 00:28:09 +02:00
vlj f2d39d0e82 d3d12: Use fixed width/height scale and use surface_clip info for scaleOffset matrix
Thanks to raven02 for the patch.
2015-08-12 00:28:09 +02:00
vlj f59bc86ac5 d3d12: Fix scaling for terraria/Voodoo chronicles
It break render_to_target test but it looks like an issue with
scale/offset buffer rather than viewport/scissor
2015-08-12 00:28:08 +02:00
vlj 09ccd7e436 d3d12: Fix crash with W16Z16Y16X16 texture format 2015-08-12 00:28:08 +02:00
vlj 2310ba137f d3d12: Fix crash with rescaling pass 2015-08-12 00:28:07 +02:00
vlj 9fdb6f0dad d3d12: Fix color of scaling output 2015-08-12 00:28:07 +02:00
vlj 281f8be76f d3d12: Enable scaling pass
The output is black and white, need to find out why.
2015-08-12 00:28:06 +02:00
vlj 224bae383c d3d12: Add some code that will scale final render target 2015-08-12 00:28:06 +02:00
vlj f55bb7165c d3d12: Load dll at runtime 2015-08-12 00:28:05 +02:00
vlj 006d989304 d3d12: Uncomment code that shouldn't have been commented out 2015-08-12 00:28:05 +02:00
raven02 00c975b469 d3d12: use gcm buffer width and height for copy texture region
It fixes crash in Voodoo Chronicles and Terraria
2015-08-12 00:28:04 +02:00
vlj e36c4f75e0 d3d12; Fix swizzle for B8 texture format
Fix menu in guided fate paradox for WARP
2015-08-12 00:28:04 +02:00
vlj 41577b5018 d3d12: Fix some warnings 2015-08-12 00:28:03 +02:00
vlj 17e169e652 d3d12: Fix crash at exit + tweak heap sizes to make dice test working 2015-08-12 00:28:03 +02:00
vlj 75a52219e0 d3d12: Rewind constant buffers get value 2015-08-12 00:28:03 +02:00
vlj c53828787a d3d12: Emit an error if waiting for too long for semaphore 2015-08-12 00:28:02 +02:00
vlj d2c13bc4c1 d3d12: Use a commited resource for constant buffer
Since we rarely use more than 1k of constant data we waste space due to
alignment requirement with heap so use a commited resource instead.
2015-08-12 00:28:02 +02:00
vlj 2f54482592 d3d12: Make depth test optionnal and use (0,0,0,0) when texture unit is disabled 2015-08-12 00:28:01 +02:00
raven02 482a371bb0 d3d12: set max_depth_value based on depth format 2015-08-12 00:26:54 +02:00
raven02 da923f8a3d d3d12: declare bufferSize for allocation 2015-08-12 00:26:53 +02:00
raven02 cf27d4c2ca d3d12: Fix pitch in COMPRESSED_DXT23/DXT45
Make pm_zcull.ppu.elf renders correctly.
2015-08-12 00:26:53 +02:00
vlj 24c23dc5f6 d3d12: Use dummy texture to fill empty texture slot
vertex attribute test has a shader that reads a texture, but rpcs3
doesn't provide the texture ; this makes WARP crash.
2015-08-12 00:26:52 +02:00
vlj cfde5698c7 d3d12: Fix swizzling for D8R8G8B8
Fix human.ppu.elf demo
2015-08-12 00:26:52 +02:00
vlj 70b537c8c2 d3d12: Implement discard
Should make alpha test kill test almost working as it should.
2015-08-12 00:26:51 +02:00
vlj dc1a57e71c d3d12: Fix color masking
Wasn't using the correct PSO state variable
2015-08-12 00:26:51 +02:00
raven02 724159c8b4 d3d12: warning log fix 2015-08-12 00:26:50 +02:00
raven02 a86e44deb4 RSX: Fix NV3089
Make convert_swizzle.elf works
2015-08-12 00:26:50 +02:00
vlj 93e20c0853 d3d12: Fix index count 2015-08-12 00:26:49 +02:00
vlj 8b631d486c d3d12: Fix build 2015-08-12 00:26:49 +02:00
raven02 48e6db3a2f d3d12: use CELL_GCM suffix for filter 2015-08-12 00:26:48 +02:00
vlj 224503d2dc d3d12: Move program related code out of D3D12GSRender and some get* format functions 2015-08-12 00:26:48 +02:00
vlj ad55cced13 d3d12: Fix vertex buffer sometimes incomplete. 2015-08-12 00:26:47 +02:00
vlj e55949dbfa d3d12: Use h0 in fragment decompiler when there is no r0
Partially fix alpha kill test.
2015-08-12 00:26:47 +02:00
vlj 8669dac5e7 d3d12: Implement sampler filters properly
Fix menu in the guided fate paradox
2015-08-12 00:26:46 +02:00
vlj 2d0dbf4949 d3d12: Async semaphore leads to deadlock, make it sync, but do resource garbage collection async 2015-08-12 00:26:46 +02:00
vlj 10b92d45d1 d3d12: Use RSXThread width height for viewport
Thanks to raven02 for finding this, it fixes render to texture test
2015-08-12 00:26:45 +02:00
vlj 4966ab565a d3d12; Clean resource sooner and fix crash with VS debugger. 2015-08-12 00:26:45 +02:00
raven02 1837f40ed4 d3d12: Factorize common use functions among frag and vertex decompiler 2015-08-12 00:26:44 +02:00
vlj e38bf8d51f d3d12: Fix rgba16float endianness for textures 2015-08-12 00:26:44 +02:00
vlj ff9f348ec2 d3d12: Use finer pitch when downloading rtt 2015-08-12 00:26:43 +02:00
vlj c2d3c857b6 d3d12: Handle w16Z16Y16X16 rtt format
It doesnt fix completly render_to_texture test but it helps.
2015-08-12 00:26:43 +02:00
vlj b8ba902657 d3d12: Fix rtt size (and crash in render_to_texture test) 2015-08-12 00:26:42 +02:00
vlj 33daa81e6f d3d12: Fix some src pitch 2015-08-12 00:26:42 +02:00
raven02 68d3f6f536 d3d12: minor cleanup 2015-08-12 00:26:41 +02:00
raven02 4ef66e6901 d3d12: Add blend for MRT 2015-08-12 00:26:41 +02:00
raven02 e72d098ea1 d3d12: use CELL_GCM suffix 2015-08-12 00:26:40 +02:00
vlj 8474cd8064 d3d12: Fix pitch for compressed textures 2015-08-12 00:26:40 +02:00
vlj 27e56b6199 d3d12: Do not set mask if not requested 2015-08-12 00:26:39 +02:00
vlj bdeb08e045 d3d12: Add color masking 2015-08-12 00:26:39 +02:00
vlj acb8f82f84 d3d12: Add front/back face culling setting 2015-08-12 00:26:38 +02:00
vlj b465992178 d3d12: Fix stencil op
Thanks to raven02 for noticing them !
2015-08-12 00:26:38 +02:00
vlj c73d19161b d3d12: Disable depth/color buffer write if not requested
Doesnt really increase performance...
2015-08-12 00:26:37 +02:00
vlj d564c25241 d3d12: Use real depth function too 2015-08-12 00:26:37 +02:00
vlj b2ad49bac8 d3d12: Check blend and depth stencil state when evaluating pso equality 2015-08-12 00:26:36 +02:00
vlj 5f46b32616 d3d12: Use instancing to pass constant vertex attribute
Maybe a bit hackish but it works.
2015-08-12 00:26:36 +02:00
vlj 64a555caca d3d12: Write data to single vertex attrib
stencil reflect has some color but it's still broken.
2015-08-12 00:26:35 +02:00
vlj 02f15810ee d3d12: Implement stencil states
Unfortunatly it doesnt solve stencil reflect test atm
2015-08-12 00:26:35 +02:00
vlj e3b73f9ea0 d3d12: Fix vertex error in stencil reflect 2015-08-12 00:26:34 +02:00
vlj 381260a493 d3d12: Check IALayout equality in pipeline state 2015-08-12 00:26:34 +02:00
vlj e4435a9308 DPH disappeared when merging, need to merge commit with the initial one 2015-08-12 00:26:34 +02:00
vlj 22e67db0f2 d3d12: Add some others texture format 2015-08-12 00:26:33 +02:00
vlj c3e19f34fa gl: sampler2d are constants 2015-08-12 00:26:33 +02:00
vlj ca90c05b0a gl : refix 2015-08-12 00:26:32 +02:00
vlj 744b56b12d gl: Fix texture unswizzling
Fix multi texture test
2015-08-12 00:26:32 +02:00
vlj 694d4e01a0 d3d12: Use openMP for vertex buffer mapping and factorize function 2015-08-12 00:26:31 +02:00
vlj 459ab17d74 d3d12: Use openMP to upload texture
Does not really increase performance so far
2015-08-12 00:26:31 +02:00
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