Unknown W. Brackets
cbeeb8fdf1
GPU: Allow culling in through mode.
...
It works per tests and is used in Soul Caliber. Fixes #13400 .
2020-09-08 15:52:01 -07:00
Henrik Rydgård and GitHub
cb3ed8f4a1
Merge pull request #13343 from unknownbrackets/xxhash
...
Switch to XXH3
2020-08-28 12:20:26 +02:00
Unknown W. Brackets
e32524c544
GPU: Remove ReliableHash aliases.
...
Let's just use XXH32/XXH64 directly in texture replacements, clearer
anyway.
2020-08-28 01:15:22 -07:00
Unknown W. Brackets
7f812a5d9a
GPU: Hash CLUT using XXH3 with replacements off.
...
It's faster, but if texture replacements are enabled, we want the hash to
stay the same.
2020-08-27 20:46:39 -07:00
Unknown W. Brackets
15c25be42b
GPU: Switch vertex/lookup hashes to XXH3.
...
This is faster pretty much everywhere.
2020-08-27 20:37:49 -07:00
Unknown W. Brackets
f44717c4f5
TexCache: Force recreate texture on detach.
...
We could have multiple detaches, and we delete the texture on attach, so
we really must make sure we recreate.
Fixes #13320 .
2020-08-23 21:29:53 -07:00
Unknown W. Brackets
3b11b09621
Debugger: Check for no texture before debug bind.
...
This means a framebuffer texture that is somehow not attached, but better
to avoid the crash.
2020-08-23 08:24:46 -07:00
Unknown W. Brackets
3055deeba6
GPU: Fix some case warnings.
...
Better to avoid the warnings.
2020-08-19 21:18:44 -07:00
Henrik Rydgård
5313fc5b36
More work on GL state leaks. Some things really need a redesign.
2020-08-18 09:18:24 +02:00
Henrik Rydgård
ccc0331279
Move timeutil to Common. (Experiment to see how much work it is to move these).
2020-08-15 20:53:08 +02:00
Henrik Rydgård
c41f875df4
Remove base/logging.h in a whole lot more places.
2020-08-15 19:09:00 +02:00
Henrik Rydgård
b43698a13d
Remove most instances of base/logging.h from Common, Core, GPU, more
2020-08-15 19:08:44 +02:00
Unknown W. Brackets
b8342fb8ec
SaveState: Rename ChunkFile files to Serialize.
...
Makes more sense and less weird than ChunkFileDoMap, etc.
2020-08-10 08:04:05 +00:00
Unknown W. Brackets
1dc5ee424b
SaveState: Split out Do types to reduce headers.
2020-08-10 08:03:44 +00:00
Henrik Rydgård
e6dfb55d3d
Optimize value conversion in (unused) depth readback.
...
This also exposes factors we can feed into shaders to do the conversion
on the GPU.
2020-08-09 10:47:01 +02:00
Henrik Rydgård
58ef0c8e80
Texture from framebuffer: Logging improvements
2020-08-04 14:45:14 +02:00
Henrik Rydgård
d57edfbdac
Rename FramebufferCommon.cpp/h to FramebufferManagerCommon.cpp/h for consistency
2020-08-03 23:17:22 +02:00
Henrik Rydgård
c5e0b799d9
Remove category from _assert_msg_ functions. We don't filter these by category anyway.
...
Fixes the inconsistency where we _assert_ didn't take a category but
_assert_msg_ did.
2020-07-19 20:33:25 +02:00
Henrik Rydgård and GitHub
bb6219e402
Merge pull request #12921 from unknownbrackets/postshader
...
Use less FBOs for chained post-processing shaders
2020-07-13 18:52:53 +02:00
Henrik Rydgård and GitHub
6009bf7b74
Merge pull request #12952 from unknownbrackets/vulkan-safesize
...
Vulkan: Match safe size behavior on all backends
2020-07-13 15:59:09 +02:00
Henrik Rydgård and GitHub
4537b807c6
Merge pull request #12969 from unknownbrackets/vertex-cache
...
Fix and improve the GLES vertex cache
2020-07-13 14:38:06 +02:00
Unknown W. Brackets
cdb7e2fc1e
GPU: Add sampler1 for postshader orig source.
2020-06-12 12:35:37 -07:00
Unknown W. Brackets
9ef521d945
GPU: Avoid immediate postshader FBO recreate.
...
Before, we created things at the wrong size, then recreated at the right.
Now we just start at the correct size once.
2020-06-12 12:35:35 -07:00
Henrik Rydgård
737688a22a
Annotate calls to RebindFramebuffer with their cause.
2020-06-02 09:51:38 +02:00
Unknown W. Brackets
56f4335915
GLES: Delay buffer use in vertex cache.
...
This creates the buffer on frame 2, starts using it on frame 3.
2020-05-24 14:47:41 -07:00
Unknown W. Brackets
c051e9ec2c
GLES: Fix disabled vertex cache code.
2020-05-24 14:05:54 -07:00
Henrik Rydgård
370678c498
Do a similar thing for D3D (let the backend handle the dirtying).
2020-05-24 20:57:59 +02:00
Henrik Rydgård
bebf649705
OpenGL/Vulkan: Rework the contract around dynamic state. Removes some ugly dirtying from the GL render manager.
2020-05-24 20:27:58 +02:00
Unknown W. Brackets
ea1f0a1195
Vulkan: Match safe size behavior on all backends.
...
Before, we would not mark a safe size for some Vulkan clears where depth
was not cleared, deviating from other backends. We also never detected
that on PowerVR. This makes things more consistent.
2020-05-23 00:25:39 -07:00
Henrik Rydgård
fabe987c8f
Add a name tag for all render steps (GL/Vulkan). Helps with debugging and should be cheap enough (a single pointer per "step").
2020-05-21 11:24:05 +02:00
Unknown W. Brackets
4ef4325fdb
GPU: Avoid unnecessary clear on stencil upload.
...
In this common case, we've typically just bound the buffer to upload a
texture to it. No need to start a new render pass.
This dodges #12927 but doesn't really fix the underlying issue.
2020-05-18 21:36:06 -07:00
Unknown W. Brackets
a36239473d
GLES: Add dependency tracking for render passes.
...
Let's try to invalidate when it's possible. We move the invalidate to the
end of the render when detected.
2020-05-17 11:06:39 -07:00
Unknown W. Brackets
32a7e7345e
GPU: Centralize framebuffer download.
...
And try not to use a potentially-null nvfb. Primarily this can happen on
Direct3D backends.
2020-05-17 10:59:33 -07:00
Unknown W. Brackets
d88099e701
GLES: Specify buffer type just to be safe.
...
Probably doesn't matter, but maybe some drivers take it as a hint?
2020-05-16 23:48:56 -07:00
Unknown W. Brackets
22e46b51c2
GPU: Centralize DestroyAllFBOs().
...
This cleans up the postshader update code.
2020-05-13 18:15:04 -07:00
Unknown W. Brackets
2faab0e082
GPU: Use postshader for direct VRAM draws again.
...
Also centralize the pixel texture code while at it.
2020-05-13 18:10:09 -07:00
Unknown W. Brackets
762b656ea2
GPU: Use a texture directly for MakePixelTexture.
...
This makes it easier to do things with it.
2020-05-13 18:10:09 -07:00
Unknown W. Brackets
fa6544b737
GPU: Cleanup leftover postshader stuff.
2020-05-13 18:10:09 -07:00
Unknown W. Brackets
cb94487a16
GPU: Move post shader handling to new class.
...
Currently, Vulkan is not working properly and direct (RAM -> output) is
not hooked up. But in general, it works.
2020-05-13 18:10:06 -07:00
Unknown W. Brackets
d39b0bdca2
GPU: Split FramebufferCommon into two classes.
...
Only some things moved over so far.
FramebufferCommon does too much, we want to share it with softgpu without
all the buffer management stuff.
2020-05-13 18:07:22 -07:00
Unknown W. Brackets
ef43ec5f33
GPU: Split up software transform into phases.
2020-05-08 23:09:24 -07:00
Unknown W. Brackets
b413a58945
GLES: Add safety handling for offset depal.
...
Just in case...
2020-05-07 23:30:17 -07:00
Unknown W. Brackets
48980d8786
GLES: Simplify the framebuf offset detection.
...
It's clearly not been understood well as changes were made, so let's dump
a bunch of comments on it.
2020-05-07 23:12:14 -07:00
Henrik Rydgård and GitHub
c6cd45e933
Merge pull request #12813 from unknownbrackets/gles-state
...
GLES: Update shader uniforms after apply state
2020-04-12 15:21:23 +02:00
Unknown W. Brackets
b57ba89b45
GLES: Update shader uniforms after apply state.
...
We may set shaderblend, projmatrix, or depthrange dirty in
ApplyDrawState(). These need to update shader uniforms to apply
correctly, but we were checking beforehand.
2020-04-11 17:40:39 -07:00
Unknown W. Brackets
a5ede2bed3
GLES: Re-enable non-float depal shader path.
...
Was accidentally always detected as unsupported.
2020-04-07 22:49:07 -07:00
Unknown W. Brackets
ac60e2ecd4
GPU: Track HW tess at start of frame too.
...
This also makes it so we don't force the setting off when you change
backends, and just ignore it if unsupported.
2020-04-04 11:52:32 -07:00
Unknown W. Brackets
30ede8240c
GPU: Move hw transform decision to draw engine.
2020-04-04 11:14:32 -07:00
Unknown W. Brackets
c42fb72419
GPU: Update uniforms w/ consistent render mode too.
2020-04-04 11:03:07 -07:00
Unknown W. Brackets
ad98609819
GPU: Use consistent buffered rendering state.
...
The setting can be changed in Qt and Windows between frames, so let's
track the current setting in most places. This is everywhere fbman is
easily accessible.
2020-04-04 10:51:47 -07:00