Commit Graph
3983 Commits
Author SHA1 Message Date
Henrik Rydgård c2bd739b49 Optimize uniform uploads for D3D9 and GL as well. 2017-08-20 13:53:39 +02:00
Henrik Rydgård 237cca683b Maintain the hashmap from time to time. Fix a bug in count reset on grow. 2017-08-20 13:34:11 +02:00
Henrik Rydgård e0e13e191f Replace the most critical unordered_maps and maps with two new maps: FastHashMap and PrehashMap. 2017-08-20 11:30:19 +02:00
Henrik Rydgård d60bb27cd9 Merge pull request #9906 from hrydgard/fastrunloop-optimize
GPU FastRunLoop optimizations
2017-08-17 16:25:15 +02:00
Henrik Rydgård 5680332343 Minor cleanups 2017-08-17 15:20:21 +02:00
Henrik Rydgård 2c4e5e2303 Fastpath in fastrunloop when diff=0. Remove need for Execute for UV scale/offset. 2017-08-17 15:20:16 +02:00
Henrik Rydgård 71baecabd6 Make FLAG_FLUSHBEFORE a no-op, move flushes into the execution functions.
It would only be necessary if we needed the previous value, which we
don't do in any of these.
2017-08-17 15:20:10 +02:00
Henrik Rydgård 5e788ffadf Implement vertex caching for Vulkan. 2017-08-17 11:22:45 +02:00
Henrik Rydgård 983bb3bd0f Can't dirty VERTEXSHADER_STATE before the flush in Execute_VertexTypeSkinning, causes obscure bugs when software skinning is enabled 2017-08-15 14:27:54 +02:00
Unknown W. Brackets ca40282a10 Dirty on various framebuf state helpers.
Ideally we should cut down on using DisableState(), or restore afterward.
2017-08-14 11:36:07 +02:00
Unknown W. Brackets 96ed8564ab Add some missing fragment shader state changes. 2017-08-14 11:36:07 +02:00
Henrik Rydgard 078e1151f9 Dirty-flag the fragment shader ID. 2017-08-14 11:36:07 +02:00
Unknown W. Brackets f1cf92988f Dirty things on stencil buffer upload. 2017-08-14 11:36:06 +02:00
Unknown W. Brackets c84efcfc97 Dirty vertexshader state on hw bezier/spline. 2017-08-14 11:36:06 +02:00
Henrik Rydgard 56cd991833 All: Only recompute the vertex shader ID when dirty 2017-08-14 11:36:06 +02:00
Henrik Rydgard 1098bf7342 All: Only convert viewportscissor state if dirty 2017-08-14 11:14:26 +02:00
Henrik Rydgard e439055a32 All: Only convert raster state if dirty 2017-08-14 11:14:26 +02:00
Henrik Rydgard e2b179d6e2 All: Only convert depth stencil state if dirty 2017-08-14 11:14:26 +02:00
Henrik Rydgard e4567c694c All: Only convert blend state if "dirty" 2017-08-14 11:14:26 +02:00
Unknown W. Brackets c711b00d4c GPU: Clean up some GLES3 defaults.
It should default both of them the same way.  And we already set subimage
on desktop.
2017-07-01 16:16:59 -07:00
Unknown W. Brackets 4a56e6ff83 GE Debugger: Fix recording in softgpu. 2017-06-04 10:38:58 -07:00
Unknown W. Brackets 41b485aa0a Core: Refactor repeating disc id homebrew code. 2017-06-03 15:29:08 -07:00
Unknown W. Brackets dca75437c3 GPU: Refactor common frame dumping code. 2017-06-03 15:29:07 -07:00
Henrik Rydgård e55b6ac4af Unify SetupVertexDecoder 2017-06-03 18:05:46 +02:00
Henrik Rydgård 14a80968cf Unify transformed arrays 2017-06-03 18:05:21 +02:00
Henrik Rydgård 1abb8792ab Unify ComputeMiniHash 2017-06-03 18:05:18 +02:00
Henrik Rydgård 3032240916 Unify DecodeVertsStep 2017-06-03 18:04:46 +02:00
Henrik Rydgård 240e058b3b Some unification in DrawEngine 2017-06-03 18:03:56 +02:00
Unknown W. Brackets 5190ad7aa2 GLES: Copy only depth in BlitFramebufferDepth.
Otherwise we get glitched rendering in some games - see #9740.
2017-06-01 20:57:08 -07:00
Henrik Rydgård 7822e5b57f Merge pull request #9755 from unknownbrackets/mipmaps
GPU: Block mipmap autogen for matching size
2017-06-01 09:04:36 +02:00
Unknown W. Brackets f1e9180676 Vulkan: Fix Cardboard rendering.
Mostly the Viewport2D flush issue, which may possibly have broken
something else.
2017-05-31 23:26:38 -07:00
Unknown W. Brackets f66ffb9ffe GPU: Fix negative mip levels with const workaround.
Might've crashed if it hit a negative level before.
2017-05-31 21:42:07 -07:00
Unknown W. Brackets b6375638f5 GPU: Block mipmap autogen for matching size.
If the mips don't get smaller, we can't autogen - the bias in that case is
used to select a different texture.  Fixes #9731.

This also may improve a minor performance issue on PowerVR in some games.
2017-05-31 21:23:20 -07:00
Henrik Rydgård 2b14c6b531 Delete obsolete function ClearBuffer 2017-05-31 13:38:22 +02:00
LunaMoo 939b26475d Fix a bunch of emu features for Homebrew by better identification. 2017-05-30 12:20:29 +02:00
Henrik Rydgård 137b79c708 Fix more review comments. 2017-05-30 09:38:05 +02:00
Henrik Rydgård e8890e3c4a Address a bunch of review comments. 2017-05-30 09:36:17 +02:00
Henrik Rydgård c173da49d3 Fix a number of bugs and stuff affecting Vulkan on Mali 2017-05-30 09:36:17 +02:00
Henrik Rydgård 6bcfe539f7 Use vulkan-style clear-on-bind when switching render targets. Not optimally used yet.
Also removes a bunch of redundant render target binds.
2017-05-30 09:36:17 +02:00
Henrik Rydgård 35aefe4a2a BindBackBufferAsRenderTarget is now replaced with BindFramebufferAsRT(nullptr) 2017-05-30 09:36:17 +02:00
Unknown W. Brackets 708a54d60b Merge pull request #9726 from hrydgard/remove-always-depth-write
Remove "Always Depth Write" setting. One step forward for #8171
2017-05-26 11:17:40 -04:00
Henrik Rydgård 6669fd0879 Buildfix 2017-05-26 16:42:38 +02:00
Henrik Rydgård 1d96ead852 Remove "Always Depth Write" setting. One step forward for #8171 2017-05-26 10:23:45 +02:00
Henrik Rydgård 1b05a54800 Remove the Mipmap setting. One step forward for #8171 2017-05-26 10:21:20 +02:00
Unknown W. Brackets c4d1863ded GPU: Consistently bias const mip levels.
Since SLOPE is just a more complicated CONST, we can treat them the same.
2017-05-12 20:30:47 -07:00
Unknown W. Brackets fd4399e108 GPU: Centralize fb resize, move to begin of frame.
It makes more sense here, because otherwise when you change it from the UI
settings, it takes a frame to "kick in".
2017-04-24 12:02:52 -07:00
Unknown W. Brackets 97620d4cca GPU: Rebuild FBOs when they now have storage. 2017-04-24 09:37:54 -07:00
Unknown W. Brackets 33ade5f916 GLES: Avoid MIN/MAX LOD without LOD control flag. 2017-04-23 10:51:25 -07:00
Unknown W. Brackets f3db8bccad GLES: Support AUTO and CONST mip bias. 2017-04-22 18:40:18 -07:00
Unknown W. Brackets 98ba7afa83 Destroy FBOs only on actual resize.
As a side effect, this means going to settings won't reset all FBOs
anymore.  The behavior can still be obtained by changing render resolution
or rendering mode.

This makes resizing the window faster on Windows, and resumes quicker from
pause.
2017-04-13 23:36:17 -07:00