Compare commits

..

3 Commits

Author SHA1 Message Date
lizzie 4045f418e8 2026-09-17 15:57:17
Signed-off-by: lizzie <lizzie@eden-emu.dev>
2026-09-17 15:57:17 +00:00
lizzie c3bf576df1 2026-09-17 15:19:28
Signed-off-by: lizzie <lizzie@eden-emu.dev>
2026-09-17 15:19:28 +00:00
lizzie 710c97dea8 Fix license headers 2026-09-17 06:50:07 +00:00
9 changed files with 23 additions and 78 deletions
-34
View File
@@ -1,34 +0,0 @@
diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index 2859ee1..766961f 100644
--- a/libavutil/hwcontext_vulkan.c
+++ b/libavutil/hwcontext_vulkan.c
@@ -1688,10 +1688,12 @@ static int setup_queue_families(AVHWDeviceContext *ctx, VkDeviceCreateInfo *cd)
hwctx->nb_qf = 0;
hwctx->queue_flags = 0;
+/* SD gamemode vkroots crash
#ifdef VK_KHR_internally_synchronized_queues
if (p->vkctx.extensions & FF_VK_EXT_INTERNAL_QUEUE_SYNC)
hwctx->queue_flags |= VK_DEVICE_QUEUE_CREATE_INTERNALLY_SYNCHRONIZED_BIT_KHR;
#endif
+*/
/* Pick each queue family to use. */
#define PICK_QF(type, vid_op) \
diff --git a/libavutil/vulkan.c b/libavutil/vulkan.c
index b2e575c..5b3c9cf 100644
--- a/libavutil/vulkan.c
+++ b/libavutil/vulkan.c
@@ -574,10 +574,12 @@ int ff_vk_exec_pool_init(FFVulkanContext *s, AVVulkanDeviceQueueFamily *qf,
e->qf = qf->idx;
VkDeviceQueueInfo2 qinfo = {
.sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2,
+/* SD gamemode vkroots crash
#ifdef VK_KHR_internally_synchronized_queues
.flags = internal_queue_sync ?
VK_DEVICE_QUEUE_CREATE_INTERNALLY_SYNCHRONIZED_BIT_KHR : 0,
#endif
+*/
.queueFamilyIndex = qf->idx,
.queueIndex = e->qi,
};
+2 -2
View File
@@ -70,9 +70,9 @@
"version": "v1.3.18" "version": "v1.3.18"
}, },
"ffmpeg": { "ffmpeg": {
"hash": "68f46abf0d5dc47ab95083d59e273131a8df7948b82e62db00f00fa416e1d0bd24b799671b5a60752209bb2ac0f75295055ed0085c89a98113323cde23b69710", "hash": "ed177621176b3961bdcaa339187d3a7688c1c8b060b79c4bb0257cbc67ad7021ae5d5adca5303b45625abbbe3d9aafdd87ce777b8690ac295290d744c875489a",
"repo": "FFmpeg/FFmpeg", "repo": "FFmpeg/FFmpeg",
"version": "6efe500d2e" "version": "c7b5f1537d"
}, },
"ffmpeg-ci": { "ffmpeg-ci": {
"ci": true, "ci": true,
-1
View File
@@ -36,7 +36,6 @@ add_library(
cityhash.h cityhash.h
common_funcs.h common_funcs.h
common_types.h common_types.h
concepts.h
container_hash.h container_hash.h
demangle.cpp demangle.cpp
demangle.h demangle.h
-18
View File
@@ -1,18 +0,0 @@
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include <iterator>
#include <type_traits>
namespace Common {
// Check if type satisfies the ContiguousContainer named requirement.
template <typename T>
concept IsContiguousContainer = std::contiguous_iterator<typename T::iterator>;
} // namespace Common
+1 -3
View File
@@ -1,4 +1,4 @@
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project // SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: 2015 Evan Teran // SPDX-FileCopyrightText: 2015 Evan Teran
@@ -15,8 +15,6 @@
#include <ostream> #include <ostream>
#include <type_traits> #include <type_traits>
#include <common/concepts.h>
namespace Common { namespace Common {
// No equivalent for "std::arithmetic" in the stdlib // No equivalent for "std::arithmetic" in the stdlib
+5 -5
View File
@@ -6,12 +6,12 @@
#pragma once #pragma once
#include <concepts>
#include <cstdio> #include <cstdio>
#include <filesystem> #include <filesystem>
#include <span> #include <span>
#include <type_traits> #include <type_traits>
#include "common/concepts.h"
#include "common/fs/fs_types.h" #include "common/fs/fs_types.h"
#include "common/fs/fs_util.h" #include "common/fs/fs_util.h"
@@ -212,7 +212,7 @@ public:
/** /**
* Helper function which deduces the value type of a contiguous STL container used in ReadSpan. * Helper function which deduces the value type of a contiguous STL container used in ReadSpan.
* If T is not a contiguous container as defined by the concept IsContiguousContainer, this * If T is not a contiguous container as defined by the concept, this
* calls ReadObject and T must be a trivially copyable object. * calls ReadObject and T must be a trivially copyable object.
* *
* See ReadSpan for more details if T is a contiguous container. * See ReadSpan for more details if T is a contiguous container.
@@ -226,7 +226,7 @@ public:
*/ */
template <typename T> template <typename T>
[[nodiscard]] size_t Read(T& data) const { [[nodiscard]] size_t Read(T& data) const {
if constexpr (IsContiguousContainer<T>) { if constexpr (std::contiguous_iterator<typename T::iterator>) {
using ContiguousType = typename T::value_type; using ContiguousType = typename T::value_type;
static_assert(std::is_trivially_copyable_v<ContiguousType>, static_assert(std::is_trivially_copyable_v<ContiguousType>,
"Data type must be trivially copyable."); "Data type must be trivially copyable.");
@@ -238,7 +238,7 @@ public:
/** /**
* Helper function which deduces the value type of a contiguous STL container used in WriteSpan. * Helper function which deduces the value type of a contiguous STL container used in WriteSpan.
* If T is not a contiguous STL container as defined by the concept IsContiguousContainer, this * If T is not a contiguous STL container as defined by the concept, this
* calls WriteObject and T must be a trivially copyable object. * calls WriteObject and T must be a trivially copyable object.
* *
* See WriteSpan for more details if T is a contiguous container. * See WriteSpan for more details if T is a contiguous container.
@@ -252,7 +252,7 @@ public:
*/ */
template <typename T> template <typename T>
[[nodiscard]] size_t Write(const T& data) const { [[nodiscard]] size_t Write(const T& data) const {
if constexpr (IsContiguousContainer<T>) { if constexpr (std::contiguous_iterator<typename T::iterator>) {
using ContiguousType = typename T::value_type; using ContiguousType = typename T::value_type;
static_assert(std::is_trivially_copyable_v<ContiguousType>, static_assert(std::is_trivially_copyable_v<ContiguousType>,
"Data type must be trivially copyable."); "Data type must be trivially copyable.");
+14 -12
View File
@@ -6,6 +6,7 @@
#pragma once #pragma once
#include <concepts>
#include <array> #include <array>
#include <functional> #include <functional>
#include <memory> #include <memory>
@@ -18,7 +19,6 @@
#include "common/assert.h" #include "common/assert.h"
#include "common/common_types.h" #include "common/common_types.h"
#include "common/concepts.h"
#include "common/swap.h" #include "common/swap.h"
#include "core/hle/ipc.h" #include "core/hle/ipc.h"
#include "core/hle/kernel/k_handle_table.h" #include "core/hle/kernel/k_handle_table.h"
@@ -292,18 +292,20 @@ public:
* @param data The container/data to write into a buffer. * @param data The container/data to write into a buffer.
* @param buffer_index The buffer in particular to write to. * @param buffer_index The buffer in particular to write to.
*/ */
template <typename T, typename = std::enable_if_t<!std::is_pointer_v<T>>> template <typename T>
requires (!std::is_pointer_v<T>
&& std::contiguous_iterator<typename T::iterator>)
std::size_t WriteBuffer(const T& data, std::size_t buffer_index = 0) const { std::size_t WriteBuffer(const T& data, std::size_t buffer_index = 0) const {
if constexpr (Common::IsContiguousContainer<T>) { using C = typename T::value_type;
using ContiguousType = typename T::value_type; static_assert(std::is_trivially_copyable_v<C>, "Container to WriteBuffer must contain trivially copyable objects");
static_assert(std::is_trivially_copyable_v<ContiguousType>, return WriteBuffer(std::data(data), std::size(data) * sizeof(C), buffer_index);
"Container to WriteBuffer must contain trivially copyable objects"); }
return WriteBuffer(std::data(data), std::size(data) * sizeof(ContiguousType), template <typename T>
buffer_index); requires (!std::is_pointer_v<T>
} else { && !std::contiguous_iterator<typename T::iterator>)
static_assert(std::is_trivially_copyable_v<T>, "T must be trivially copyable"); std::size_t WriteBuffer(const T& data, std::size_t buffer_index = 0) const {
return WriteBuffer(&data, sizeof(T), buffer_index); static_assert(std::is_trivially_copyable_v<T>, "T must be trivially copyable");
} return WriteBuffer(&data, sizeof(T), buffer_index);
} }
/// Helper function to get the size of the input buffer /// Helper function to get the size of the input buffer
@@ -1,4 +1,4 @@
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project // SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project // SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
@@ -9,7 +9,6 @@
#include <span> #include <span>
#include <vector> #include <vector>
#include "common/concepts.h"
#include "core/hle/service/nvdrv/devices/nvdevice.h" #include "core/hle/service/nvdrv/devices/nvdevice.h"
namespace Service::Nvidia::Devices { namespace Service::Nvidia::Devices {
-1
View File
@@ -10,7 +10,6 @@
#include <string> #include <string>
#include <concepts> #include <concepts>
#include <algorithm> #include <algorithm>
#include "common/concepts.h"
#include "common/fs/path_util.h" #include "common/fs/path_util.h"
#include "common/logging.h" #include "common/logging.h"
#include "common/string_util.h" #include "common/string_util.h"