Commit graph

141 commits

Author SHA1 Message Date
Henrik Rydgård
683a4e0fb2
Merge pull request #11676 from unknownbrackets/gles-depth
WIP - GLES: Download depth values via shader
2018-12-19 09:58:38 +01:00
Henrik Rydgård
a2cc2b39ca Additional raw string shaders 2018-12-18 10:42:29 +01:00
Unknown W. Brackets
27e8720e14 GLES: Download depth values via shader.
Working on desktop, but not on mobile...
2018-12-16 17:34:16 -08:00
Unknown W. Brackets
e49568f67d GLES: Move depth packing code to dedicated file. 2018-12-16 17:34:16 -08:00
Unknown W. Brackets
87085d18f0 GLES: Fix render-to-self detection.
Was broken by the recent fb_address changes, so match Vulkan and D3D11
for consistency.
2018-11-22 09:26:12 -08:00
Unknown W. Brackets
16d7a80980 GPU: Clear alpha more consistently from 565.
Before, the backends all did different things.  Now they are more in sync,
but Vulkan still behaves slightly differently.

Fixes #11326.
2018-08-30 21:00:21 -07:00
Unknown W. Brackets
b4496f1975 Core: Move config enums to separate file.
These are a bit strewn about and there are constants that aren't
consistently used, which just adds confusion.
2018-06-23 10:59:18 -07:00
Unknown W. Brackets
03edd6129a GLES: Cut down on use of USING_GLES2. 2018-06-17 20:51:34 -07:00
Unknown W. Brackets
4f93b1d136 GLES: Removed unused skip copy code.
Now it was just making the buffer larger for no reason.  Before, it
allowed us to skip the convBuf copy.
2018-06-06 05:56:30 -07:00
Unknown W. Brackets
8f354e5312 GPU: Minor framebuffer code cleanup. 2018-06-06 05:56:30 -07:00
Unknown W. Brackets
7c8780bfb6 GPU: Remove some unused code. 2018-06-06 05:56:29 -07:00
Henrik Rydgård
c1d113e0e9 When creating temp framebuffers for download, size them using bufferWidth/Height instead of width/height.
Or maybe we should make sure to only download within the width/height by
adding more clamps at the beginning of ReadFramebufferToMemory but seems
more dangerous.

Plus some minor things.

Should help #11113
2018-06-01 21:16:07 +02:00
Unknown W. Brackets
8d07e6d985 GPU: Prevent temp FBOs from overwriting each other.
Sometimes we'd use two temp FBOs in the same draw (e.g. shader blending +
depal.)  This could cause the same temp FBO to get used for two purposes,
causing weird behavior.
2018-05-06 08:57:44 -07:00
Henrik Rydgård
117dad8a48 Just add some constants for the GL texture slots. 2018-04-13 09:11:08 +02:00
Unknown W. Brackets
c6ef547176 GLES: Show post-shader compile errors to user. 2018-04-01 19:47:19 -07:00
Unknown W. Brackets
db756b6aeb GLES: Show post-shader translate errors to user.
Usually these should be syntax errors, so better to let them know it
happened.
2018-04-01 19:47:02 -07:00
Henrik Rydgård
99af1d58ad OpenGL task switching fix 2018-03-17 13:45:12 +01:00
Henrik Rydgård
88e8229159 GL: Need to recompile postshaders on Resized() (which is a bit of a misnomer) 2018-02-12 14:01:52 +01:00
Unknown W. Brackets
0474ff5c23 GLES: Use aligned memory for textures.
We use SSE on them, and they used to be aligned, and must be aligned in
PSP RAM, so keep them aligned.

This only really affects 32-bit, since allocs will typically be aligned on
64-bit anyway.

Fixes #10601.
2018-02-11 08:13:57 -08:00
Henrik Rydgård
3c93eaf164 GL: Fix clearing alpha on stencil uploads. 2018-02-10 17:18:18 +01:00
Henrik Rydgård
625595c6cc For some reason we use DrawActiveTexture in the GL stencil stuff, don't want to disable stencil unconditionally.. 2018-02-08 16:59:03 +01:00
Henrik Rydgård
86cfc411a4 Remove the confusing "DisableState" across the codebase 2018-02-08 16:27:36 +01:00
Henrik Rydgård
b9081dd624 GL: Set a plain render state in DrawActiveTexture, without relying on the caller having called DisableState 2018-02-08 16:21:34 +01:00
Henrik Rydgård
b9b41f52c5 Add a simple spinner to the game load screen to not look frozen. 2018-02-08 12:03:29 +01:00
Henrik Rydgård
ce16547854 GL render manager: Fix bug when setting texture sampler if the wrong GL texture slot is active. Will likely help #10583 2018-02-07 19:49:58 +01:00
Henrik Rydgård
982a1710ae gl-render-manager: Fix postprocessing shaders. Fixes #10566. Live switching is broken though for some reason. 2018-01-31 17:23:24 +01:00
Unknown W. Brackets
38161f3c69 GLES: Use linear for high-res FBO tex copies. 2018-01-27 15:10:17 +01:00
Unknown W. Brackets
f6260c75c9 GLES: Reset blend state on clear.
Because now that resets blending parameters.
2018-01-27 15:10:17 +01:00
Unknown W. Brackets
4f1b8d80a9 GLES: Bind texture on MakePixelTexture().
This is currently necessary because callers expect it.  Also, move inside
render passes.
2018-01-27 15:10:17 +01:00
Henrik Rydgård
af6431986d OpenGL: Now run GL on a secondary thread. Sync issues remain. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
d0038775e5 TODOs and indentations 2018-01-27 15:10:17 +01:00
Henrik Rydgård
b7f4f6e157 GL render manager: Improve shader error reporting. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
542f9f9ef1 Assorted cleanup 2018-01-27 15:10:17 +01:00
Henrik Rydgård
63b9140ebf Rip out async readbacks from FramebufferManagerGLES. They should be implemented in GLQueueRunner, differently. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
958078f603 GL render manager: Merge BindInputLayout into BindVertexBuffer. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
84ad7a2dba Fix bug, works on Android now. Don't reuse textures. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
f99fa02ba7 Run the depal stuff, seems a bit broken. Add some state filtering. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
8a1e7347b9 GL render manager: Various fixes and cleanup including a buffered rendering fix, rect primitive fix 2018-01-27 15:10:17 +01:00
Henrik Rydgård
7e3e652963 Fix more gl-render-manager problems 2018-01-27 15:10:17 +01:00
Henrik Rydgård
51f467a7b3 Kill off the GL state cache 2018-01-27 15:10:17 +01:00
Henrik Rydgård
f3282dcfda Delete the gl name cache (might resurrect it on the GLQueueRunner side if needed later). Other cleanup and fixes. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
46e1fbb788 Initial texture work. Bugfix indexed drawing 2018-01-27 15:10:17 +01:00
Henrik Rydgård
bd6818198a More GLRenderManager 2018-01-27 15:10:17 +01:00
Henrik Rydgård
376d92fcc9 Start messing with the draw engine... 2018-01-27 15:10:17 +01:00
Henrik Rydgård
b5e5d72a0a Complete the separation of depth and stencil renderpass flags 2017-12-30 22:52:22 +01:00
Unknown W. Brackets
025a806ab4 GPU: Remove FBO auto-download hack.
See #6261.  This should be replaced now with block transfer detection,
which is faster and doesn't cause crashes.

Games that previously required this setting should use block transfer
instead.  If that doesn't work, it's a bug.
2017-12-25 11:17:59 -08:00
Unknown W. Brackets
0956fa3ff6 GPU: Reduce depth blits when not updated.
If the game initially clears the depth in a buffer, but then never uses
that depth again, don't keep blitting depth.

Improves #8538, by preventing the depth blits in this case.
2017-12-24 11:52:15 -08:00
Unknown W. Brackets
8e2682d93c GLES: Reduce conversion buf size if possible.
No need to use the stride for the temp buf.  May avoid issues if the
driver crashes when reading outside the FBO.
2017-12-21 12:02:45 -08:00
Unknown W. Brackets
30871bfcd1 GLES: Avoid buffer on GLES2 for h=1 / CLUT. 2017-12-21 11:52:11 -08:00
Unknown W. Brackets
75aa65908c GLES: Pack without stride where possible.
This may possibly help #10425 in case the behavior is different when going
over width when reading pixels.
2017-12-21 11:41:53 -08:00