Commit Graph

2434 Commits

Author SHA1 Message Date
Joshua Ashton ab5060a7f2 vkd3d-shader: Fix potential buffer overrun for image_operands
This would happen if you both sampled with both a texel offset and were LOD masked.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-29 13:53:49 +01:00
Joshua Ashton 5e3127a0d5 vkd3d-shader: Fix buffer overrun for bindless constant loads
Previously, last_index would be 4 by the time it got to the loop if we were bindless -- which corrupted the component_ids that were being written.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-29 13:53:49 +01:00
Joshua Ashton 02fca8d190 build: Enable warning level 2
Equivelant to -Wall -Wextra

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-27 15:23:09 +02:00
Joshua Ashton d70223e57d vkd3d: Cast down tile extents in offsets explicitly
Fixes a signedness comparison warning -- shouldn't be a problem as we aren't going to get images with 2m+ tiles.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-27 15:23:09 +02:00
Joshua Ashton ed6adc3fa2 vkd3d-common: Refactor string loop code
Also fix some bad signed comparison problems.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-27 15:23:09 +02:00
Joshua Ashton 079a012dab build: Use Meson subproject for dxil-spirv
Removes the CMake dependency and solves some trouble building.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-26 18:33:27 +02:00
Joshua Ashton 9564f57a69 vkd3d-shader: Fix incorrect use of static in ext arrays
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-26 15:42:41 +02:00
Joshua Ashton fdcf33ff47 vkd3d-shader: Fix incorrect enum being used for tesselator partitioning
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-26 15:42:41 +02:00
Joshua Ashton ce7eba6210 vkd3d-shader: Fix incorrect type enum in global binding
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-26 15:42:41 +02:00
Joshua Ashton 0b6d460813 vkd3d-shader: Fix wrong enum for {CLIP,CULL}_DISTANCE
The wrong enum was used here... It was just returning the same thing

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-26 15:42:41 +02:00
Krzysztof Bogacki 12b71b9f5a build: Remove SPIRV-Tools dependency
For autotools–based builds only, Meson never used it anyway.

Signed-off-by: Krzysztof Bogacki <krzysztof.bogacki@leancode.pl>
2020-06-26 13:43:08 +02:00
Krzysztof Bogacki c11d3eed17 vkd3d: Remove SPIRV-Tools-based debugging code
Signed-off-by: Krzysztof Bogacki <krzysztof.bogacki@leancode.pl>
2020-06-26 13:43:08 +02:00
Joshua Ashton 5f4c383c1a vkd3d: Remove _spv suffix from prebuilt shaders
Matches what we build from glslang in Meson now.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-25 13:51:06 +02:00
Joshua Ashton f3f0887c43 vkd3d: Compile glsl shaders at compile time
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-25 13:51:06 +02:00
Joshua Ashton 61dcb5d0dd vkd3d: Move shader contents out of header
This way we can use a glsl generator on them in future in Meson.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-25 13:51:06 +02:00
Joshua Ashton e46b0ef3c5 build: Add glsl generator to root build script
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-25 13:51:06 +02:00
Joshua Ashton a46fb17973 vkd3d: Make enqueued_fence_count a uint32_t
Fixes atomic usage with it.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-24 21:13:35 +02:00
Joshua Ashton d709fd3306 vkd3d: Add vkd3d_atomic_uint32_{dec, inc}rement helper
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-24 21:13:35 +02:00
Joshua Ashton 45d4296a54 vkd3d: Rename vkd3d_uint32_atomic to vkd3d_atomic_uint32
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-24 21:13:35 +02:00
Joshua Ashton 033f76e3ae vkd3d: Define our own memory orders
We shouldn't potentially override stuff in the std library and this allows us to map directly to __ATOMIC_* memory orders which is more correct.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-24 21:13:35 +02:00
Joshua Ashton 25f6e1d0a9 vkd3d: Use __atomic builtins instead of stdatomic
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-24 21:13:35 +02:00
Joshua Ashton 26c9dc90f4 vkd3d: Implement sequential consistency on MSVC
Also optimize and reduce unnecessary barriers.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-24 21:13:35 +02:00
Joshua Ashton 0d1dea607a demos/gears: Don't redefine _GNU_SOURCE
We define this globally now.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-24 15:27:22 +02:00
Joshua Ashton 4c819baad3 vkd3d: Use pthread reimplementation only on MSVC
We can use pthreads properly under MinGW
2020-06-24 15:27:22 +02:00
Joshua Ashton fb02f28c41 vkd3d: Don't redefine InterlockedIncrement under MinGW
Fixes compiler warnings

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-24 15:27:22 +02:00
Joshua Ashton 2e32cb11ba programs/vkd3d-compiler: Add build script
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-24 15:27:22 +02:00
Joshua Ashton c79d073b67 build: Fallback to vkd3d-utils if no d3d12 lib is present
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-24 15:27:22 +02:00
Philip Rebohle 945ec70f4d tests: Don't build uninteresting tests.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-06-24 15:19:18 +02:00
Joshua Ashton 161dc007c5 build: Link dxil-spirv statically
Don't need to link this in any fancy way

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-24 15:18:56 +02:00
Joshua Ashton 8931770654 subprojects: Update dxil-spirv submodule
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-24 15:18:56 +02:00
Joshua Ashton 22545c189a vkd3d-shader: Build statically
We don't need this to be another random so floating around...

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-24 15:18:56 +02:00
Joshua Ashton 4521b253dd vkd3d: Toss VKD3D_DEBUG_ENV_NAME
Creates linking problems if we want to build vkd3d-shader statically given this links back to something in vkd3d-common.

We don't need this distinction anyways...

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-24 15:18:56 +02:00
Hans-Kristian Arntzen 69f338be8f build: Fix MinGW build.
Revert removal of MinGW forceinline hacks.
They are necessary or MinGW fails to build.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-06-24 14:17:34 +01:00
Hans-Kristian Arntzen 2b7ef38248 Revert "vkd3d: make spinlock_t atomic to make clang happy"
This reverts commit 7b1dce2667.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-06-24 13:40:03 +02:00
Georg Lehmann 7b1dce2667 vkd3d: make spinlock_t atomic to make clang happy
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
2020-06-24 13:26:31 +02:00
Hans-Kristian Arntzen 24be81fdfb vkd3d/meta: Initialize flags variable.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-06-24 12:43:19 +02:00
Joshua Ashton 8c216e637c build: Add Meson build system
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-23 14:55:43 +02:00
Joshua Ashton 45f9836c60 vkd3d: Eliminate config.h
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-23 14:55:43 +02:00
Joshua Ashton da2c9a1043 vkd3d: Eliminate HAVE_SPIRV_UNIFIED1_SPIRV_H and HAVE_SPIRV_UNIFIED1_GLSL_STD_450_H
These are submodules now.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-23 14:55:43 +02:00
Joshua Ashton 1f266cc16b vkd3d: Eliminate HAVE_PTHREAD_H
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-23 14:55:43 +02:00
Joshua Ashton e34eb3bf0f subprojects: Add submodules for dependencies
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-23 14:55:43 +02:00
Georg Lehmann a95e56675a vkd3d: use pause while spinning on x86
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
2020-06-17 09:49:08 +02:00
Joshua Ashton bfd7127284 vkd3d-shader: Don't use return value semantics in void functions
Fixes warnings in MSVC.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-16 12:13:54 +02:00
Joshua Ashton 0b1a25a9e5 vkd3d: Add vkd3d_atomic.h to Makefile.am
This was missing previously.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-16 11:07:50 +02:00
Joshua Ashton 287ceb207d vkd3d: Refactor platform-specific code
This commit moves the module handling code which was previously dumped in device.c and the code to retrieve the current executable path to its own file.

This also eliminates HAVE_DECL_PROGRAM_INVOCATION_NAME from config.h

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-16 11:07:50 +02:00
Joshua Ashton f3ec53cb5d vkd3d: Implement vkd3d_get_program_name for Win32
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-16 11:07:50 +02:00
Hans-Kristian Arntzen da782831e4 Revert "vkd3d: Use monotonically increasing fence values in test suite."
Rewinding fence values were undocumented at the time, but new
documentation makes it clear that it is allowed to rewind a fence, even
if behavior is unpredictable in nature.

This reverts commit 3b9f1f8a9c.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-06-16 11:00:08 +02:00
Hans-Kristian Arntzen 349412f19f vkd3d: Support rewinding ID3D12Fence.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-06-16 11:00:08 +02:00
Hans-Kristian Arntzen 5ef7b99e0b vkd3d: Fix uninitialized return value in CPU fence signaling.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-06-16 11:00:08 +02:00
Joshua Ashton 75089f0e1d demos/gears: Use hpc for getting time on Win32
There's no sys/time.h on MSVC.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-16 10:55:56 +02:00