Commit graph

56 commits

Author SHA1 Message Date
Henrik Rydgård
38684762c8 Fix Star Ocean stencil issue with OpenGL. Fixes #13746 2020-11-11 23:23:31 +01:00
Henrik Rydgård
84037f448e Remove colorDepth property of framebuffers. They're all 8888. 2020-11-05 14:51:46 +01:00
Henrik Rydgård
0e3a84b4a8 Move most GPU things to Common.
It works after the move, on Windows and Android at least.

Deletes the D3DX9 shader compiler loader, which was not used.
2020-10-04 23:39:02 +02:00
Henrik Rydgård
dcd33a4692 Remove redundant bind on GL texture build. Improve dirtying of texture state. 2020-09-21 08:56:58 +02:00
Henrik Rydgård
181ddd842a Unify some GPU_SUPPORT* bits 2020-09-17 20:52:32 +02: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
737688a22a Annotate calls to RebindFramebuffer with their cause. 2020-06-02 09:51:38 +02: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
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
271389b8e5 GLES: Fix stencil buffer upload at > 1x PSP.
Also fixes crashes on ATI.  See #6627.
2019-03-10 08:36:12 -07:00
Unknown W. Brackets
01809f809f GLES: Correct fragment precision check.
Was breaking on Mali-4xx for example, because not defined.
2018-12-23 20:16:59 -08:00
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
a73c569bf6 Add check for GL_FRAGMENT_PRECISION_HIGH for GLES in stencil code. 2018-12-18 14:30:05 +01:00
Henrik Rydgård
de4dec2a80 Use raw strings for more shaders 2018-12-18 10:37:45 +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
Henrik Rydgård
b17fc67c45 Get rid of MaskedEqual 2018-11-12 08:19:19 +01:00
Henrik Rydgård
42f4d7b40f OpenGL: Fix bug where we could end up calling glUniformMatrix without a bound program. Found by GL debug callback on NV.
This adds a bit of extra checking that's only enabled in _DEBUG builds.
2018-07-28 11:09:01 +02: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
9f4cd3fcdb GLES: Add missing semantics for stencil upload.
Makes #10634 work for GLES properly.
2018-06-17 17:50:38 -07:00
Unknown W. Brackets
f6036195d8 GLES: Cleanup stencil upload w/h handling.
In case a buffer has been resized recently, we want to upload just the
detected drawable area, probably.  Before this was inconsistent depending
on the render resolution.
2018-06-17 17:50:38 -07: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
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
5351c9ddb3 gl-render-manager: Support scissored clears, as used by the GL backend. Fixes GT. 2018-01-31 17:07:20 +01:00
Unknown W. Brackets
638cbf725b GLES: Skip blend reset after stencil upload.
We dirty the flag anyway.  Avoid extra calls.
2018-01-27 15:10:17 +01:00
Unknown W. Brackets
acb692677b GLES: Accept a color mask for clears.
Otherwise, we end up clearing RGB when we try to only clear alpha, which
is fairly common.

Makes Valkyria Chronicles 3 action mode visible again.
2018-01-27 15:10:17 +01:00
Unknown W. Brackets
22bf124631 GLES: Document stencil clearing bug. 2018-01-27 15:10:17 +01:00
Unknown W. Brackets
790e3121d2 GLES: Move stencil upload state into render pass.
Without this, stencil upload simply failed silently.  Fixes Star Ocean
stencil issues.
2018-01-27 15:10:17 +01:00
Unknown W. Brackets
a135035850 GLES: Ensure stencil upload clear in render pass.
Fixes crashes in Star Ocean.
2018-01-27 15:10:17 +01:00
Henrik Rydgård
58854adb80 StencilBufferGLES: Move SetNoBlendAndMask to the right places. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
a642c1a990 Fix goof with the stencil buffer drawing 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
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
d565e23f4c Stencil copy: Avoid clearing the depth buffer. 2017-12-31 01:06:31 +01:00
Henrik Rydgård
b5e5d72a0a Complete the separation of depth and stencil renderpass flags 2017-12-30 22:52:22 +01:00
Henrik Rydgård
5018e400f2 Remove some code duplication 2017-11-01 14:51:15 +01:00
Unknown W. Brackets
e754cca288 GLES: Add OpenGL 3.x core profile support.
Need to define #version everywhere and avoid varying/etc.
2017-09-20 12:22:01 -07:00
Unknown W. Brackets
f1cf92988f Dirty things on stencil buffer upload. 2017-08-14 11:36:06 +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
Henrik Rydgård
e8890e3c4a Address a bunch of review comments. 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
Unknown W. Brackets
3fbb545451 Allow MakePixelTexture to use a subrange.
For example, if it has a larger texture it wants to reuse, it can control
this via texcoords.  Let's keep it at top left, though.
2017-03-22 20:56:26 -07:00
Unknown W. Brackets
78191e645d GL: Avoid unnecessary stencil shader binding.
The comment became untrue, so no need to rebind for each bit.
2017-03-18 13:47:49 -07:00
Henrik Rydgard
26f208a212 Unify "DrawPixels" 2017-02-15 23:06:22 +01:00
Henrik Rydgard
0fb1e95bac Remove GLSL program argument to DrawActiveTexture - bind before instead. 2017-02-15 22:47:44 +01:00
Henrik Rydgard
5b181e8244 Further work on DrawActiveTexture 2017-02-07 00:13:54 +01:00