|
457390fc
|
2018-11-01T20:24:21
|
|
metal: avoid an extra buffer allocation and GPU data copy in RunCommandQueue, it's not needed. Improves overall performance.
|
|
4e86dfd8
|
2018-11-01T19:49:01
|
|
metal: remove an obsolete section of a constant buffer.
|
|
0d79a8a1
|
2018-11-01T20:04:24
|
|
fix build using Watcom :
./src/render/SDL_render.c(2168): Error! E1054: Expression must be constant
./src/render/SDL_render.c(2168): Error! E1054: Expression must be constant
./src/render/SDL_render.c(2175): Error! E1054: Expression must be constant
./src/render/SDL_render.c(2175): Error! E1054: Expression must be constant
./src/render/SDL_render.c(2322): Error! E1054: Expression must be constant
./src/render/SDL_render.c(2322): Error! E1054: Expression must be constant
./src/render/SDL_render.c(2322): Error! E1054: Expression must be constant
./src/render/SDL_render.c(2322): Error! E1054: Expression must be constant
./src/render/SDL_render.c(2329): Error! E1054: Expression must be constant
./src/render/SDL_render.c(2329): Error! E1054: Expression must be constant
./src/render/SDL_render.c(2329): Error! E1054: Expression must be constant
./src/render/SDL_render.c(2329): Error! E1054: Expression must be constant
./src/render/software/SDL_render_sw.c(602): Error! E1054: Expression must be constant
./src/render/software/SDL_render_sw.c(602): Error! E1054: Expression must be constant
./src/render/software/SDL_render_sw.c(602): Error! E1054: Expression must be constant
./src/render/software/SDL_render_sw.c(602): Error! E1054: Expression must be constant
|
|
4659e738
|
2018-11-01T12:31:45
|
|
merge fallout: Patched to compile, fixed some compiler warnings, etc.
|
|
329f2eb9
|
2018-10-31T20:17:53
|
|
Fix crash when GL_LoadFunctions()/GLES2_LoadFunctions() fails
https://bugzilla.libsdl.org/show_bug.cgi?id=4350
We can't safely call GL_DestroyRenderer() until GL_LoadFunctions()
succeeds because we will be missing functions that we try to use
when activating the renderer for destruction if we have an GL context.
|
|
62494a2e
|
2018-10-31T15:03:41
|
|
Merge SDL-ryan-batching-renderer branch to default.
|
|
da56cefa
|
2018-10-30T07:00:03
|
|
Fixed bug 4188 - Software renderer SDL_RenderCopyEx blits corrupt image under certain cases
Sylvain
Re-opening this issue.
It fixes the test-case, but it introduces a regression with another bug (bug #4313).
So here's a new patch that activate cropping of the source surface to solve the issue.
It also reverts the wrong changeset.
It prevents unneeded colorkey error message.
|
|
91820998
|
2018-10-28T21:36:48
|
|
Add and update include guards
Include guards in most changed files were missing, I added them keeping
the same style as other SDL files. In some cases I moved the include
guards around to be the first thing the header has to take advantage of
any possible improvements compiler may have for inclusion guards.
|
|
8340b0f0
|
2018-10-23T01:34:03
|
|
render: Add floating point versions of various draw APIs.
|
|
b262b0eb
|
2018-10-22T20:50:32
|
|
Small stack allocations fall back to malloc if they're unexpectedly large.
|
|
8c41e262
|
2018-10-13T03:36:42
|
|
metal: Fix SDL_RenderReadPixels to wait for the GPU to finish rendering to the active texture before reading its pixels.
|
|
d9094421
|
2018-10-12T17:55:42
|
|
metal: Fix high dpi and resizing on macOS, and clean up iOS code. Fixes bug #4250.
|
|
82c2f04e
|
2018-10-09T17:41:40
|
|
Fixed bug 4188 - Software renderer SDL_RenderCopyEx blits corrupt image under certain cases
duckgrease
SDL_RenderCopyEx blits wrong image (in some cases it's bunch of alternating horizontal lines, some cases it's image from the wrong coordinate, and in some cases it's just a bunch of garbled pixels), when the following conditions are met:
- Use software renderer.
- Enable either horizontal or vertical flip.
- source and destination rectangles must have same width and height, and must be smaller than the size of the texture.
- source rectangle's X and Y coordinates must be 0.
|
|
eedf2c96
|
2018-10-06T17:08:04
|
|
opengles2: Fixed several incorrect things.
|
|
6ecd0b2c
|
2018-10-04T21:10:42
|
|
opengles2: removed useless memcpy.
|
|
ef3d970a
|
2018-10-04T20:22:28
|
|
opengles2: Fixed incorrect cliprect state.
|
|
208c4b03
|
2018-10-04T20:21:58
|
|
metal: CopyEx transform matrix must be aligned for constant buffer access.
|
|
638d624f
|
2018-10-04T20:21:23
|
|
metal: Don't try to create a zero-byte vertex buffer.
(Which will cause a crash in Metal, or an assert in the validation layer.)
|
|
1ecf4dfc
|
2018-10-04T16:34:44
|
|
render: Added SDL_RenderFlush().
|
|
09140bd8
|
2018-10-04T16:11:43
|
|
render: Move PSP backend to new interface.
I have no idea if this works (or if it ever worked, having now examined this
code), as I have no way to compile or test this.
If it's broken, send patches. :)
|
|
9fedff99
|
2018-10-03T23:37:29
|
|
render: moved software renderer to new interface.
|
|
bd08a4e6
|
2018-10-03T19:05:20
|
|
render: D3D11 now cycles through 8 vertex buffers.
This means it doesn't have to block while the current frame finishes using the
vertex buffer; it just moves on to the next, probably-not-in-use buffer.
|
|
a9094a21
|
2018-10-03T18:23:53
|
|
render: D3D11 renderer patched to compile.
|
|
6e6f7382
|
2018-10-03T00:52:37
|
|
render: first (untested!) shot at converting D3D11 renderer to new interfaces.
Probably doesn't even compile yet.
|
|
0c2e10dc
|
2018-10-01T22:53:45
|
|
render: Make the GL backends cache and defer more state changes.
|
|
fcb46813
|
2018-10-01T13:41:15
|
|
render: D3D9 doesn't need to check for stream offset support anymore.
We don't use offsets at all now. Too slow.
|
|
709f5ee4
|
2018-10-01T11:32:08
|
|
render: Set the D3D9 stream source once and choose offsets during draw calls.
This is _much_ faster than setting the offsets with SetStreamSource!
|
|
9870746b
|
2018-10-01T03:02:54
|
|
render: Patched to compile.
|
|
5e644cfd
|
2018-10-01T01:23:02
|
|
render: first shot at moving Direct3D 9 backend to new interface. Untested!
|
|
fdc52a65
|
2018-09-29T04:00:38
|
|
render: patched to compile on C89 compilers, other untested code fixes.
|
|
daad53af
|
2018-09-28T19:48:14
|
|
opengles1: set some non-zero drawstate defaults.
|
|
c20a858d
|
2018-09-28T19:47:44
|
|
render: moved opengles2 over to new interface.
|
|
20dfda44
|
2018-09-28T00:40:35
|
|
Fixed mingw-w64 build
|
|
7df0f4fd
|
2018-09-27T14:56:29
|
|
Fixed bug 4277 - warnings patch
Sylvain
Patch a few warnings when using:
-Wmissing-prototypes -Wdocumentation -Wdocumentation-unknown-command
They are automatically enabled with -Wall
|
|
60afec79
|
2018-09-25T19:53:16
|
|
Removed redundant SDL_GetColorKey() call. (thanks Sylvain!)
|
|
0d588cc4
|
2018-09-25T21:35:09
|
|
render: Do state cache improvements for GLES1, too.
|
|
d04e5524
|
2018-09-25T19:20:31
|
|
render: OpenGL renderer now caches some state, to improve non-batching mode.
(other minor bug fixes in here, too)
|
|
06461bba
|
2018-09-25T17:04:47
|
|
render: Move non-batching flushes to different place.
This lets us batch up a few commands that are all related to the same API
call.
|
|
43f15e05
|
2018-09-25T16:17:10
|
|
render: opengles renderer actually works now. :)
|
|
b2db99cb
|
2018-09-25T10:41:25
|
|
render: First shot at converting opengles renderer to new interfaces.
|
|
ef347048
|
2018-09-24T16:41:55
|
|
Fixed bug 4264 - SDL_CreateTextureFromSurface generates error message but returns ok
Anthony @ POW Games
SDL_CreateTextureFromSurface makes an internal call to SDL_GetColorKey which can return an error and spams the error log with "Surface doesn't have a colorkey" even though the original function didn't return an error.
|
|
c01da217
|
2018-09-24T12:30:47
|
|
render: get rid of the predeclared functions in the GL and Metal renderers.
(others to come as I continue to update render backends!)
|
|
051d1cfc
|
2018-09-24T02:08:34
|
|
render: Make opengl backend take advantage of new high-level features.
|
|
8ac5c00a
|
2018-09-24T02:07:35
|
|
render: Add command queue debug logging.
|
|
2241b33f
|
2018-09-23T23:22:56
|
|
render: Update Metal and GL backends to use new high-level features, etc.
Now nothing is uploaded as dynamic data with Metal's setVertexBytes, etc; it's
all in the one big vertex buffer, now.
|
|
cc56de44
|
2018-09-23T23:20:40
|
|
render: A bunch of high-level improvements.
- high-level filters out duplicate render commands from the queue so
backends don't have to.
- Setting draw color is now a render command, so backends can put color
information into the vertex buffer to upload with everything else instead
of setting it with slower dynamic data later.
- backends can request that they always batch, even for legacy programs,
since the lowlevel API can deal with it (Metal, and eventually Vulkan
and such...)
- high-level makes sure the queue has at least one setdrawcolor and
setviewport command before any draw calls, so the backends don't ever have
to manage cases where this hasn't been explicitly set yet.
- backends allocating vertex buffer space can specify alignment, and the
high-level will keep track of gaps in the buffer between the last used
positions and the aligned data that can be used for later allocations
(Metal and such need to specify some constant data on 256 byte boundaries,
but we don't want to waste all that space we had to skip to meet alignment
requirements).
|
|
8955fb9b
|
2018-09-20T16:40:04
|
|
render: First shot at moving metal backend over to new batching system.
|
|
55cb9966
|
2018-09-20T16:36:54
|
|
render: first shot at reworking opengl backend for new batching system.
|
|
5fb67f9f
|
2018-09-20T15:46:02
|
|
render: Move to a batching system for rendering (work in progress).
|
|
a2f7af9a
|
2018-09-09T15:09:38
|
|
gles2: Make render command queue dynamic.
It now uses a growable linked list that keeps a pool of allocated items for
reuse, and reallocs the vertex array as necessary. Testsprite2 can scale to
20,000 (or more!) draws now without drama.
|
|
0d327529
|
2018-09-08T18:26:11
|
|
gles2: Major renderer optimization. Work in progress!
This moves all the rendering to a command list that is flushed to the GL as
necessary, making most common activities upload a single vertex buffer per
frame and dramatically reducing state changes. In pathological cases,
like Emscripten running on iOS's Safari, performance can go from a dozen
draw calls killing your performance to 1000 draw calls running smoothly.
This is work in progress, and not ready to ship. Among other things, it has
a hardcoded array that isn't checked for overflow. But the basic idea is
sound!
|
|
264b81b4
|
2018-09-06T00:56:13
|
|
metal: Make sure layer drawableSize is adjusted on resize.
Fixes Bugzilla #4250.
|
|
3634e563
|
2018-09-01T20:47:12
|
|
metal: SDL_UpdateYUVTexture shouldn't swap planes based on format.
|
|
90a5607d
|
2018-08-29T20:23:42
|
|
Fixed compiler warning and use higher precision in angle calculation
|
|
92396f7d
|
2018-08-28T16:19:31
|
|
Fixed Windows build
|
|
87bc1fb5
|
2018-08-28T12:57:51
|
|
GLES2: Get sin/cos out of vertex shader
The only place angle is activated and causes effect is RenderCopyEx. All other
methods which use vertex shader, leave angle disabled and cause useless sin/cos
calculation in shader.
To get around shader's interface is changed to a vector that contains results
of sin and cos. To behave properly when disabled, cos value is set with offset
-1.0 making 0.0 default when deactivated.
As nice side effect it simplifies GLES2_UpdateVertexBuffer: All attributes are
vectors now.
Additional background:
* On RaspberryPi it gives a performace win for operations. Tested with
[1] numbers go down for 5-10% (not easy to estimate due to huge variation).
* SDL_RenderCopyEx was tested with [2]
* It works around left rotated display caused by low accuracy sin implemetation
in RaspberryPi/VC4 [3]
[1] https://github.com/schnitzeltony/sdl2box
[2] https://github.com/schnitzeltony/sdl2rendercopyex
[3] https://github.com/anholt/mesa/issues/110
Signed-off-by: Andreas M?ller <schnitzeltony@gmail.com>
|
|
915a7e03
|
2018-06-25T01:57:28
|
|
gles2: Whoops, overzealous copy/paste on my part. :)
|
|
5308a245
|
2018-06-24T12:16:58
|
|
Fixed some possible malloc(0) calls reported by static analysis.
|
|
74ec7cab
|
2018-06-18T13:13:56
|
|
Fixed race condition where Android touch events could get scaled by a render target's viewport
|
|
fe032ff4
|
2018-05-10T08:25:23
|
|
do the direct3d tap dance for overscan hint only if SDL_VIDEO_RENDER_D3D == 1
|
|
eb14b635
|
2018-05-07T19:52:25
|
|
Fixed bug 4134 - Render targets lose scale quality after minimizing a fullscreen window
Olli-Samuli Lehmus
If one creates a window with the SDL_WINDOW_FULLSCREEN_DESKTOP flag, and creates a render target with SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "linear"), and afterwards sets SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "nearest"), after minimizing the window, the scale quality hint is lost on the render target. Textures however do keep their interpolation modes.
|
|
8891f591
|
2018-02-21T22:53:52
|
|
Backed out changeset 6c8521d53507
Apparently this still triggers a compiler warning, have to dig further.
|
|
fd8f12d2
|
2018-02-21T22:35:17
|
|
android: apparently they fixed this header at some point.
|
|
40b27fd5
|
2018-02-12T17:00:00
|
|
revert the recent typecast assignment changes (see bug #4079)
also change the void* typedefs for the two vulkan function
pointers added in vulkan_internal.h into generic function
pointer typedefs.
|
|
d5f293a7
|
2018-02-09T16:31:57
|
|
Fixed compile warning
|
|
90e72bf4
|
2018-01-30T18:08:34
|
|
Fixed ISO C99 compatibility
SDL now builds with gcc 7.2 with the following command line options:
-Wall -pedantic-errors -Wno-deprecated-declarations -Wno-overlength-strings --std=c99
|
|
72d45079
|
2018-01-10T10:42:40
|
|
Added availability check to fix compiler warning for symbol only available on tvOS 11.0 and newer
|
|
7d5437bb
|
2018-01-07T22:00:37
|
|
metal: set max texture size based on device capability.
|
|
a8c0532c
|
2018-01-07T16:57:32
|
|
metal: Fix pipeline states to use the pixel format of the current render target, instead of a hard-coded format.
|
|
740a90af
|
2018-01-06T18:54:12
|
|
metal: Add support for YUV/NV12 texture formats.
|
|
9a8683b2
|
2018-01-04T22:16:42
|
|
metal: use a private instead of managed buffer for the renderer's non-changing constant data.
Recommended by Xcode's Metal frame capture analysis.
|
|
990ebba5
|
2018-01-04T19:29:33
|
|
metal: Implement fast hardware clearing when possible, by deferring the start of a render pass until a clear or draw operation happens.
|
|
e3cc5b2c
|
2018-01-03T10:03:25
|
|
Updated copyright for 2018
|
|
888198ee
|
2018-01-03T00:43:01
|
|
metal: Misc. improvements.
- Use a single buffer for various non-changing constants accessed by the GPU, instead of multiple buffers.
- Do the half-pixel offset for points and lines using a transform matrix so we don't need a malloc when rendering.
- Don't add a half-pixel offset for other primitives and textures. This matches D3D and GL render behaviour.
- Remove the half-texel texture coordinate offset since it's not needed now that there's no more half-pixel position offset when rendering a texture.
- Don't try to set texture usage on iOS 8 since it doesn't exist there.
|
|
f9cd7650
|
2018-01-02T21:44:28
|
|
metal and moltenvk: fix highdpi.
|
|
b3b5c473
|
2018-01-02T14:32:15
|
|
Fixed direction of y adjustment for new orthographic projection in the metal renderer
|
|
fa86807c
|
2018-01-02T14:11:10
|
|
Fixed metal renderer pixel centers when drawing
|
|
07f08b47
|
2018-01-01T23:06:08
|
|
metal: Fix a typo preventing iOS compilation...
|
|
1cc66033
|
2018-01-01T23:03:50
|
|
metal: Clean up manual reference counting. Fixes some memory leaks.
|
|
a452a084
|
2018-01-01T19:40:29
|
|
iOS: fix build
|
|
639ea9fd
|
2018-01-01T19:37:16
|
|
metal: Use sampler state objects instead of shader-declared samplers for linear vs nearest filtering.
This avoids a ton of shader duplication once multiple shaders that use samplers are added (e.g. the currently missing YUV shaders).
|
|
cf45cf70
|
2018-01-01T18:06:27
|
|
metal: Add support for custom blend modes.
|
|
85470a2f
|
2017-12-31T21:06:16
|
|
metal: implement SDL_RenderCopyEx, and fix a memory leak in SDL_CreateTexture.
|
|
047d387b
|
2017-12-31T15:30:08
|
|
metal: Use the existing cocoa code for creating a Metal view on macOS. Fixes the renderer size when the window is resized.
|
|
42b19c97
|
2017-12-30T22:39:55
|
|
metal: Respect the vsync flag on macOS 10.13+.
|
|
e24dc905
|
2017-12-30T20:32:22
|
|
metal: use a projection matrix instead of manually transforming vertices into clip space on the CPU.
|
|
49df65c2
|
2017-12-30T18:48:07
|
|
metal: only 4 (instead of 5) vertices are needed to draw rectangles and textures, and only 3 (instead of 5) vertices are needed to cover the screen for the 'full-screen quad' when clearing.
|
|
87894224
|
2017-12-12T16:34:16
|
|
Fixed bug 3981 - Inverted logic bug in SDL_renderer "overscan" feature
Eric wing
There is a tiny bug in the new overscan code for the SDL_renderer.
In SDL_renderer.c, line 1265, the if check for SDL_strcasecmp with "direct3d" needs to be inverted.
Instead of:
if(SDL_strcasecmp("direct3d", SDL_GetCurrentVideoDriver())) {
It should be:
if(0 == SDL_strcasecmp("direct3d", SDL_GetCurrentVideoDriver())) {
This bug causes the "overscan" mode to pretty much be completely ignored in all cases and all things remain letterboxed (as before the feature).
|
|
e8bbbb37
|
2017-12-12T12:52:17
|
|
Added support for Android video textures
|
|
bed7fd80
|
2017-12-12T12:52:09
|
|
Merged latest changes from rel/streaming_client
|
|
7ac46a74
|
2017-12-11T11:34:53
|
|
The newer compilers generate the property boilerplate automatically
|
|
358e4d9c
|
2017-12-11T11:02:51
|
|
Fixed Mac OS X build
|
|
c2cc9c16
|
2017-12-09T19:48:38
|
|
Backed out using pixel texture coordinates, it had weird visual side effects
|
|
8aad4923
|
2017-12-09T19:41:08
|
|
Fixed normalized coordinates when the viewport is set
|
|
441d3095
|
2017-12-09T15:00:41
|
|
Added support for linear sampling and pixel coordinates in the metal renderer
|
|
f55c9988
|
2017-12-09T12:58:41
|
|
Fixed pixel positioning and size for the Metal renderer
|
|
7dac177c
|
2017-12-09T03:28:23
|
|
metal: fixed render target support.
|
|
85d12d8f
|
2017-12-09T03:27:52
|
|
metal: Added some comments and FIXMEs.
|
|
686fc093
|
2017-12-08T18:26:26
|
|
metal: Cleaned up some reference count politics.
|
|
cf3d4503
|
2017-12-08T14:30:10
|
|
Added SDL_RenderGetMetalLayer() and SDL_RenderGetMetalCommandEncoder()
|