Commit graph

78 commits

Author SHA1 Message Date
David CARLIER
68a1e5de14 fix printf format warnings to represent VkDeviceSize (aka uint64_t). 2022-12-07 23:32:25 +00:00
Denis Pauk
2b01442235 Fix vk build on debian stable with 1.2.162 headers 2022-11-26 13:15:13 +02:00
Denis Pauk
8a79f754d2 Rename vk_validation to r_validation
Prepare to merge share image load: https://github.com/yquake2/yquake2/pull/924
2022-11-19 14:39:55 +02:00
Denis Pauk
42ab79aa1d Add datasize parameter to LoadPic
Prepare to merge share image load: https://github.com/yquake2/yquake2/pull/924
2022-11-19 14:37:53 +02:00
Denis Pauk
646b65dfa8
Merge pull request #32 from devnexen/uninitialize2
Vk_LoadPic fix unitialized var.
2022-11-19 13:25:46 +02:00
David Carlier
44ab39c57c Vk_LoadPic fix unitialized var.
R_MarkLeaves data alignment to int when merging PVS clusters like GL renderers.
2022-11-19 10:46:12 +00:00
Denis Pauk
8bd731b89c
Merge pull request #31 from devnexen/fix_uninit
Vk_LoadPic uninitialized vars for 8 bits case.
2022-11-13 19:25:06 +02:00
David Carlier
25225b8ab9 Vk_LoadPic uninitialized vars for 8 bits case.
VK_DrawParticles rgb calculation align to color' table type.
2022-11-13 08:57:01 +00:00
Denis Pauk
925ed6a547 Update shared.c from yquake2
0bc3ac6079
2022-11-07 23:20:03 +02:00
Denis Pauk
425bc5ac5e Mod_LoadBrushModel: Sync varibale names with other renders 2022-10-30 12:28:54 +02:00
Denis Pauk
fd8077146d Port shared models load
898b87f0f4
2022-10-20 08:23:10 +03:00
David Carlier
a3e1346520 backport signed left shift from main quake2. 2022-10-16 10:57:11 +01:00
Denis Pauk
d7a11c33be Add const to scale functions 2022-09-17 13:19:26 +03:00
Denis Pauk
a62603b3c7 cppcheck: make parameters const 2022-09-14 00:13:34 +03:00
Denis Pauk
b2103fca46
Merge pull request #28 from devnexen/silent_warning
silent clang warning as SDL vulkan and vulkan define both same macros.
2022-09-12 20:54:45 +03:00
David CARLIER
4402657b5f silent clang warning as SDL vulkan and vulkan define both same macros. 2022-09-11 23:29:31 +01:00
Denis Pauk
674e634679 cppcheck: make parameters const 2022-08-28 15:01:06 +03:00
Denis Pauk
41f12687a4 Fix function propotypes -Wmissing-prototypes 2022-08-14 15:40:51 +03:00
Denis Pauk
2c4c8421fb Update shared.c files with headers from yquake2
Based on f9ab797c7c
2022-07-30 16:09:18 +03:00
David Carlier
e467107d45 Hunk_Begin/Alloc attr malloc addition. 2022-07-30 15:27:08 +03:00
Denis Pauk
1b91ee0f95 fix C --pedantic warnings
* extra semicolon in struct or union specified
* ISO C does not allow extra ‘;’ outside of a function
2022-07-30 15:27:02 +03:00
Daniel Gibson
0c4606973e Make basename() fully compliant and simplify it a bit 2022-07-30 15:26:56 +03:00
Daniel Gibson
955944a71a Make it work with VS2015 and newer
the workaround is a bit ugly but should work..
(I only tested VS2017, but I guess 2015 should also work)
2022-07-30 15:26:49 +03:00
Daniel Gibson
914441ff3a CMake: Make the game build with Visual Studio (2019 16.8 or newer)
The easiest way to build this is to check out the dhewm3-libs project
(https://github.com/dhewm/dhewm3-libs/) to provide the dependencies
(SDL2, OpenAL, cURL) and set YQUAKE2LIBS accordingly, by passing
-DYQUAKE2LIBS=c:/path/to/dhewm3-libs/i686-w64-mingw32 to cmake.

I wouldn't really recommend building with MSVC - I just somehow made it
work and ignored all the warnings and I have no idea how portable the
resulting binaries are etc. For binaries you actually want to use, please
continue using MinGW-w64. Especially my workaround for VLAs (C99 variable
length arrays) is kinda fishy, particularly if those arrays are allocated
in a loop (that's inly done in ref_gl1.dll's code).

The only reason I did this is that I had to debug on Windows and, at least
for my specific bug, gdb didn't really work with binaries produced by
MingGW-w64 and MSVC's debugger works well with binaries produced by MSVC.

Currently requires VS 2019 16.8 or newer with C11 (/std:c11) because I
couldn't get YQ2_ALIGNAS_TYPE() to work with MSVC without _Alignas().
If we can get this to work, VS2015 or newer might suffice (but not older
versions, because their so called C standardlib didn't provide exotic
functions like snprintf()).

# Conflicts:
#	CMakeLists.txt
2022-07-30 15:26:40 +03:00
Denis Pauk
36b41fc107 Revert "Temporary fix for MoltenVK"
This reverts commit 41057458e4.
2022-07-24 14:09:05 +03:00
Denis Pauk
e5f7bf7e82 Add additional logic for skip VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
Added checks for:
```
Memory types must not have both VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
and VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT set.
```
And
```
A memory type with this flag set is only allowed to be bound to a VkImage
whose usage flags include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT.
```

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryPropertyFlagBits.html
2022-07-24 00:10:31 +03:00
Denis Pauk
41057458e4 Temporary fix for MoltenVK
MoltenVK has issues with memory flags, partial revert of #25 and
apply #27
2022-07-23 17:50:31 +03:00
Denis Pauk
dcb6e9f7d0 Hide VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME for non MoltenVK
VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME is a provisional extension
and must be used with caution.

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_portability_subset.html
2022-07-23 14:41:51 +03:00
David CARLIER
8ca794ab68 Enables beta extensions for MoltenVK 2022-07-23 12:54:16 +03:00
Denis Pauk
48a73aa92f
Merge pull request #26 from devnexen/drawparticlessig
Apply similar change done for the gl1 renderer here.
2022-07-22 23:31:19 +03:00
Denis Pauk
592f847fca
Merge pull request #25 from yquake2/vma_heuristic
Support memory preferences cost logic
2022-07-22 23:30:52 +03:00
David Carlier
987011e319 Apply similar change done for the gl1 renderer here. 2022-07-22 13:20:13 +01:00
Denis Pauk
f2e439064e Support memory preferences cost logic
Port memory preferences cost logic from VMA allocator.
https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/

Code selects memory that has more bits simular to asked preferences.
2022-07-17 20:25:47 +03:00
Denis Pauk
d8beb0ee78 Update messages 2022-07-17 20:09:20 +03:00
David Carlier
d147aa10c3 little memory related changes. 2022-07-11 21:00:58 +01:00
Denis Pauk
29c0fd21cc Update usage information. 2022-07-11 00:12:29 +03:00
David CARLIER
d0e903fd78 Follow-up on MoltenVK changes.
Loading earlier its calls and adding metal device infos to the device.
2022-07-10 00:46:44 +01:00
Denis Pauk
e5739a5a42 Update README 2022-07-09 19:38:16 +03:00
David CARLIER
b1ec44057e MoltenVK/macOs specific variables.
- vk_molten_metalbuffers: enable/disable Metal buffers to bind textures
more efficiently (>= Big Sur).
- vk_molten_fastmath: enable/disable float point op optimisations.
2022-07-09 11:31:30 +01:00
David Carlier
649279b587 reducing a bit more the debug infos scope, differentiate also
a bit more validation 2 level towards 1.
2022-07-02 12:01:04 +01:00
Denis Pauk
1458f68393 Simplify validaton init workaround 2022-07-02 00:20:18 +03:00
Denis Pauk
97be0f92df
Merge pull request #18 from devnexen/vk_instance_noval
Instance handling fallback.
2022-07-01 23:16:30 +03:00
David CARLIER
fe554ca0cc Instance handling fallback.
When the validation layers fails (or not present) then we "surprisingly"
 fallback to a GL renderer losing all settings too.
Here we try to create the instance but without the validation part then.
2022-06-28 22:04:05 +01:00
Denis Pauk
bfd5659abc
Merge pull request #16 from devnexen/volkloadinstance_postpone
QVk_Init: Load instance data only on success.
2022-06-26 13:50:20 +03:00
David Carlier
099fbda371 QVk_Init: Load instance data only on success. 2022-06-26 09:59:09 +01:00
Yamagi
c4fc8c86bb
Merge pull request #15 from devnexen/update_vendors_list
Update the vendors list.
2022-06-25 20:52:00 +02:00
David CARLIER
d374fe1630 Update the vendors list. 2022-06-25 16:21:57 +01:00
Yamagi
6729698611 Switch off STB thread local support.
Quake II is a single threaded application, so we don't require STB to be
thread save. Omitting thread local support prevents mingw from requiring
pthreads.
2022-06-13 07:14:57 +02:00
maraakate
ed0b80a3d4 src/common/shared.c: Check >= maxsize in Info_SetValueForKey(). Found by ASAN. 2022-05-29 15:57:52 +03:00
Denis Pauk
d134f46b59 Select device by type priorities
Code has selected discrete gpu if it has seen several render devices. It does not work if no discrete gpu has attached to device.

As solution device selected by priorities list like:
 * VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
 * VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU,
 * VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU,
 * VK_PHYSICAL_DEVICE_TYPE_CPU,
 * VK_PHYSICAL_DEVICE_TYPE_OTHER.
2022-05-09 10:56:55 +03:00