Commit graph

86 commits

Author SHA1 Message Date
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
9e41fafd0d Move math and some file and data conversion files out from native to Common.
Buildfixing

Move some file util files

Buildfix

Move KeyMap.cpp/h to Core where they belong better.

libretro buildfix attempt

Move ini_file

More buildfixes
2020-10-04 09:12:46 +02:00
Henrik Rydgård
707e9cf7ac Remove some unnecessary function parameters, improve some comments. 2020-09-20 20:44:18 +02:00
Henrik Rydgård
5117ded378 Remove ELOG/ILOG/WLOG from the Android C++ code (mostly) 2020-08-15 19:08:39 +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
Unknown W. Brackets
64435e56b1 Draw: Use uniform locs for GLES, add samplers.
So that we can initialize and bind samplers.
2020-06-12 12:35:36 -07:00
Unknown W. Brackets
24c844445e GPU: Don't allow step id to decrease at a sync.
This might've caused us to miss necessary dynamic state dirtying in games,
but only in fairly specific cases.  But it happens a lot when stepping via
the GE debugger.
2020-05-24 22:39:29 -07: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
Henrik Rydgård
bef078a3bd GLRenderManager: Removes some redundant dirtying. Preserves blend state (color mask) across clears. 2020-05-24 19:18:04 +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
98df4bbec3 GPU: Allow choosing number of inflight frames. 2020-03-01 08:53:46 -08:00
Unknown W. Brackets
a91e206926 GPU: Add setting to control inflight frame usage. 2020-03-01 06:21:27 -08:00
Henrik Rydgård
8c2e318416 OpenGL dataformat cleanup - pass Draw::DataFormat to the GLRenderManager.
Avoids triple GLenum all over the place, and also clearly shows that the
mapping is wrong.
2019-10-24 22:41:41 +02:00
Henrik Rydgård
9e7625c74b Workaround for a crash found in #12358 on older devices 2019-09-28 01:11:06 +02:00
Unknown W. Brackets
adeca2c3ba GLES: Move some vendor bug checks to Draw. 2018-12-23 20:27:22 -08:00
Unknown W. Brackets
57767ba1f8 GLES: Use depth textures where possible. 2018-12-16 17:34:16 -08:00
xebra
03b9492f08 [spline/bezier]Sharing textures to avoid heavily textures creation/deletion in one frame. At least, it occurs about 1000 and very slow down in Pursuit Force. 2018-10-07 23:54:12 +09:00
xebra
3add123587 thin3d: Add support for texture subimage to GLRender. 2018-10-07 23:54:02 +09:00
Henrik Rydgård
a3a94bdd33 Avoid calling any GL calls during shutdown on Android. Should help #11063
The context is already lost and we're really running shutdown when the process is woken
up again. Additionally, orderly shutdown through the button doesn't happen
on the render thread so remove a couple of asserts that are wrong.
2018-10-06 21:31:52 +02: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
377b220fb3 GLES: GlPushBuffer was a little too friendly. 2018-04-14 11:00:13 -07:00
Unknown W. Brackets
32eb483932 GLES: Defrag using deleter off render thread.
Moving it to the render thread was a bit more complex because of
localMemory.  Fixes #10859.
2018-04-08 19:22:46 -07:00
Henrik Rydgård
ca0fb77080 Assorted cleanups. Don't assert on no clear mask. 2018-04-06 23:29:44 +02:00
Henrik Rydgård
b06df3536e Auto unregister push buffer on deletion. 2018-04-05 17:53:03 +02:00
Henrik Rydgård
c7eb259c0c Auto register new push buffers on creation 2018-04-05 17:50:37 +02:00
Henrik Rydgård
76138fee6d Move pushbuffer deletion to the render manager. 2018-04-05 17:47:08 +02:00
Henrik Rydgård
feb3870f7d Also take control over Begin/End 2018-04-05 17:34:32 +02:00
Henrik Rydgård
8d6bbc54a9 Minor refactoring moving creation/deletion of GLPushBuffer to GLRenderManager 2018-04-05 17:31:12 +02:00
Unknown W. Brackets
c6ef547176 GLES: Show post-shader compile errors to user. 2018-04-01 19:47:19 -07:00
Henrik Rydgård
6858c77612 Don't allow wrapping on framebuffer textures. Fixes GTA on old NV Shield 2018-03-17 01:54:11 +01:00
Henrik Rydgård
2a438d6e03 Fix VSync on Windows. Should fix #10711 2018-03-12 20:07:31 +01:00
Unknown W. Brackets
7c983a6842 GLES: Support more buffer mapping strategies. 2018-03-04 14:48:06 -08:00
Unknown W. Brackets
5f1cd19687 GLES: Android buildfix. 2018-02-11 13:17:08 -08:00
Unknown W. Brackets
20b532fc71 GLES: Use buffer storage and explicit flush.
This is just as fast as using glMapBufferRange on desktop.
2018-02-11 13:14:28 -08:00
Unknown W. Brackets
edcd2f966a GLES: Use buffer range mapping where appropriate. 2018-02-11 12:35:33 -08:00
Unknown W. Brackets
9eb51a6a36 GLES: Use mapped device memory when possible. 2018-02-11 12:35:32 -08: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
Unknown W. Brackets
0e2a586c1b Global: Fix some type comparison/shadow warnings. 2018-02-11 07:03:23 -08:00
Henrik Rydgård
481134bfe9 Another go at the deleter problem. Still not feeling 100% good about how this works.. but it does seem to work fine. 2018-02-08 00:41:17 +01:00
Henrik Rydgård
8ee426ff74 Get rid of an unused codepath (gl rendering is now always threaded) 2018-02-08 00:23:48 +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
79d1610148 Move SDLGLGraphicsContext.h to the correct location. Minor cleanup 2018-02-04 13:42:04 +01:00
Henrik Rydgård
99386da01e Minor cleanups 2018-02-04 13:42:04 +01:00
Henrik Rydgård
583c20991f Qt: Some cleanup and fixes. Still not working correctly with gl-render-manager. 2018-02-04 13:42:04 +01:00
Henrik Rydgård
d6e888a39b Revert "Simpler way to deal with the GL deleter"
This reverts commit 3a988400a7.
2018-02-04 13:09:51 +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
Henrik Rydgård
3a988400a7 Simpler way to deal with the GL deleter 2018-01-30 22:32:16 +01:00
Unknown W. Brackets
0399088fc7 GLES: Handle glGetString() on GL thread.
We only use a few strings, so should be fine to cache them.
2018-01-27 15:10:17 +01:00
Unknown W. Brackets
30a60018a0 GLES: Fix race crash on shutdown.
This happens when there are pointers in step commands that get freed.
2018-01-27 15:10:17 +01:00
Unknown W. Brackets
acc3e39b67 GLES: Reintroduce out of memory checks. 2018-01-27 15:10:17 +01:00