Commit Graph

10210 Commits

Author SHA1 Message Date
Davis Gallinghouse
deb313dd99 GPU: Compile Metal shader source from NSString
Using the @() syntax to construct an NSString assumes the parenthesized
pointer is null-terminated, but the Metal shader source included in
render/sdlgpu/shaders/metal.h is not null-terminated.

Quoting the clang documentation on Objective-C literals:

    When the type of the parenthesized expression is (char *) or (const
    char *), the result of the boxed expression is a pointer to an
    NSString object containing equivalent character data, which is
    assumed to be ‘\0’-terminated and UTF-8 encoded.

Because the @() syntax assumes null-termination, it may read garbage
data after the shader source (up to the next null byte), which can then
cause the Metal shader compiler to fail. To prevent this, instead of
using the @() boxing syntax, we explicitly construct an NSString using
the string length passed by the caller.
2024-09-02 07:20:36 -07:00
Sam Lantinga
df501040fd Fixed random seed not affecting SDLTest_RandomIntegerInRange() 2024-09-01 14:05:27 -07:00
Zero
2c0ffdc6d5 GPU: Pass the new window size when resizing the swapchain for d3d12 (#10665) 2024-09-01 08:48:29 -07:00
Andrei Alexeyev
d4b8072614 GPU: Fix and generalize BytesPerRow() and BytesPerImage() (#10663)
These functions had special cases for a few BC formats, but all
block-compressed formats should need the same logic. Furthermore they
weren't handling the sRGB variants of those formats.
2024-08-31 23:07:38 -07:00
coffeechriph
b15d79a35a Fix texture_rgba_frag for metal in SDL_shaders_gpu.c 2024-08-31 20:09:11 -07:00
Anonymous Maarten
c11b58ead7 Increase maximum line length of SDLTest_LogAllocations 2024-09-01 02:19:39 +02:00
Sam Lantinga
b17ca32d8c Changed GPU driver names to match renderer driver names
Fixes https://github.com/libsdl-org/SDL/issues/10650
2024-08-31 10:06:27 -07:00
Sam Lantinga
51a0b58f75 GPU logging should be quiet by default 2024-08-31 09:52:21 -07:00
Sam Lantinga
6c30a0f60b Added scaleMode validation to SDL_SetTextureScaleMode() 2024-08-31 09:43:02 -07:00
Anonymous Maarten
63e58e5d66 SDL_Log: always use WriteFile/WriteConsole on Windows
OutputDebugString and fprintf(stderr) (of mslibc) both output
to the debug window of Visual Studio.
In other debuggers (e.g. RAD), this does not happen.

To avoid double output, this commit always uses WriteFile/WriteConsole.
2024-08-31 17:48:57 +02:00
Anonymous Maarten
8ffc1c2705 SDL_Log: don't rely on printf to forward stderr to the debug stream
This partially reverts 125ce71379
2024-08-31 17:48:57 +02:00
Sam Lantinga
f827c1322c Renamed SDL_Del* to SDL_Remove* 2024-08-31 07:46:28 -07:00
Sam Lantinga
cf1d8e2dfd Renamed SDL_AtomicSetPtr() and SDL_AtomicGetPtr()
Fixes https://github.com/libsdl-org/SDL/issues/10601
2024-08-31 07:46:28 -07:00
Jan Sedivy
00708b976a GPU Metal: Fix uninitialized memory 2024-08-31 07:29:32 -07:00
Sam Lantinga
2010a22f44 Removed unneeded separate return statement. 2024-08-31 07:26:13 -07:00
Sam Lantinga
4759a97c09 Fixed return value from D3D12_UpdateVertexBuffer()
Fixes https://github.com/libsdl-org/SDL/issues/10649
2024-08-31 07:26:13 -07:00
Anonymous Maarten
31a5f3b833 Fix C4090: 'function': different 'const' qualifiers 2024-08-31 06:49:33 -07:00
Frank Praznik
5d5a685a80 wayland: Add support for setting window icons via the xdg-toplevel-icon-v1 protocol 2024-08-31 09:38:43 -04:00
Anonymous Maarten
ea0ab2647a SDL_test: print no procname when SDL_TRACKMEM_SYMBOL_NAMES is false
On ci, by default this variable is set to a false value.
By adding [sdl-ci-trackmem] to the commit message,
it will become true.
2024-08-31 13:16:51 +02:00
Anonymous Maarten
384afa378c SDL_test: fix proc names on older libunwind
Older libunwind does not have unw_get_proc_name_by_ip.
Instead, use unw_get_proc_name.

Reference: 4c00433b69
2024-08-31 13:16:51 +02:00
Andrei Alexeyev
0e08d15cca GPU: Fix unhandled R16G16_UNORM in SDL_GPUTextureFormatTexelBlockSize() (#10638) 2024-08-30 17:05:17 -07:00
Sam Lantinga
f13dc502c6 Sort exported functions 2024-08-30 15:45:30 -07:00
Evan Hemsley
12ecdb9dde GPU: Rename some awkwardly named functions (#10642) 2024-08-30 15:31:10 -07:00
Sam Lantinga
bef07023d6 Fixed memory leak if the GPU renderer can't be initialized
DestroyRenderer needs to be set before we return false from GPU_CreateRenderer()
2024-08-30 14:49:49 -07:00
cosmonaut
906044569d GPU D3D12: Fix command buffer leak 2024-08-30 10:46:41 -07:00
Sam Lantinga
b602c449e5 Remove SDL_SCALEMODE_BEST
Fixes https://github.com/libsdl-org/SDL/issues/10619
2024-08-30 10:30:14 -07:00
Evan Hemsley
4bbf0d45fd GPU D3D12: Fix teardown and leaks on device creation failure (#10639) 2024-08-30 10:24:02 -07:00
Sam Lantinga
40d85109ac Fixed crash when using the dummy video driver
The higher level code will clean up the renderer if initialization fails.
2024-08-30 07:16:47 -07:00
Sam Lantinga
580a496391 Adjust rounding when calculating resampled output frames
Fixes https://github.com/libsdl-org/sdl2-compat/issues/95
2024-08-30 07:16:47 -07:00
Anonymous Maarten
88fe52df7b SDL_test: add --gpu option 2024-08-30 13:43:38 +02:00
Andrei Alexeyev
d1a2c57fb9 GPU: Fix memory leak in VULKAN_CreateDevice (#10631) 2024-08-29 22:15:08 -07:00
Sam Lantinga
16fb8e54cb Fixed the colorspace for YUV textures using native RGB representations
Fixes https://github.com/libsdl-org/SDL/issues/10624
2024-08-29 20:55:09 -07:00
Sam Lantinga
efc98062af Fixed warning C4310: cast truncates constant value 2024-08-29 19:31:23 -07:00
Sam Lantinga
5518aca054 Use stdbool internally in SDL 2024-08-29 18:54:05 -07:00
Sam Lantinga
dfcabc3db8 Fixed drawing debug text 2024-08-29 18:21:48 -07:00
Sam Lantinga
683e5b8d52 Removed Unicode BOM 2024-08-29 17:33:52 -07:00
Sam Lantinga
858589919a Temporarily use the GPU renderer by default so we get testing feedback 2024-08-29 17:33:52 -07:00
Sam Lantinga
b356c65005 Sort exported symbols 2024-08-29 17:33:52 -07:00
Sam Lantinga
62f6e6b701 Removed the preferLowPower parameter from SDL_CreateGPUDevice() 2024-08-29 17:33:52 -07:00
Sam Lantinga
b8e7ef27f3 Renamed GPU device creation properties 2024-08-29 17:33:52 -07:00
Sam Lantinga
d70578b9aa Renamed Gpu to GPU 2024-08-29 17:33:52 -07:00
cosmonaut
2e7d5bb429 Add the SDL_GPU API
Project Lead: Evan Hemsley <evan@moonside.games>

Co-designer, Metal Port, Console Ports:

Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>

Production, QA, Debug:

Co-authored-by: Ethan Lee <flibitijibibo@gmail.com>

SDL_Render Driver, Bugfixes:

Co-authored-by: Andrei Alexeyev <akari@taisei-project.org>

Additional D3D12 Programming, Bugfixes:

Co-authored-by: Bart van der Werf <bluelive@gmail.com>

Bugfixes and Feedback:

Co-authored-by: Zakary Strange <zakarystrange@gmail.com>
Co-authored-by: meyraud705 <meyraud705@gmail.com>
Co-authored-by: Joshua T. Fisher <playmer@gmail.com>
Co-authored-by: Topi Ritala <ritalat@fastmail.com>
Co-authored-by: David Gow <david@ingeniumdigital.com>

Original API Proposal:

Co-authored-by: Ryan C. Gordon <icculus@icculus.org>
2024-08-29 15:57:29 -07:00
Mārtiņš Možeiko
d9b3b9ad91 Add neon SIMD alpha blending blitter 2024-08-28 21:37:55 -07:00
Ethan Lee
9ab140fad8 offscreen: Fix bogus surface pointer assignment 2024-08-28 21:31:24 -04:00
Sam Lantinga
1a007ab88d Fixed SDL_GetDisplayIndex() 2024-08-28 16:30:21 -07:00
Sam Lantinga
7055001d85 Fixed SDL_GetPrimaryDisplay() 2024-08-28 15:59:13 -07:00
Sam Lantinga
0cdb4833d5 Removed unnecessary inclusion of stdint.h 2024-08-28 15:54:56 -07:00
Sam Lantinga
37b4aac3ac Removed unnecessary inclusion of stdbool.h 2024-08-28 13:58:03 -07:00
Sam Lantinga
91eabf1b4d Fixed SDL_EGL_ChooseConfig() 2024-08-28 13:37:00 -07:00
Sam Lantinga
3bf7b4ff31 Fixed SDL_EGL_LoadLibrary() 2024-08-28 13:21:02 -07:00