VideoCore: Move Slot Vector to Common

This commit is contained in:
Fernando Sahmkow 2024-02-03 22:51:04 +01:00
parent 5da55cbac9
commit 4841dc0b74
12 changed files with 33 additions and 33 deletions

View file

@ -121,6 +121,7 @@ add_library(common STATIC
settings_input.cpp settings_input.cpp
settings_input.h settings_input.h
settings_setting.h settings_setting.h
slot_vector.h
socket_types.h socket_types.h
spin_lock.cpp spin_lock.cpp
spin_lock.h spin_lock.h

View file

@ -14,7 +14,7 @@
#include "common/common_types.h" #include "common/common_types.h"
#include "common/polyfill_ranges.h" #include "common/polyfill_ranges.h"
namespace VideoCommon { namespace Common {
struct SlotId { struct SlotId {
static constexpr u32 INVALID_INDEX = std::numeric_limits<u32>::max(); static constexpr u32 INVALID_INDEX = std::numeric_limits<u32>::max();
@ -217,11 +217,11 @@ private:
std::vector<u32> free_list; std::vector<u32> free_list;
}; };
} // namespace VideoCommon } // namespace Common
template <> template <>
struct std::hash<VideoCommon::SlotId> { struct std::hash<Common::SlotId> {
size_t operator()(const VideoCommon::SlotId& id) const noexcept { size_t operator()(const Common::SlotId& id) const noexcept {
return std::hash<u32>{}(id.index); return std::hash<u32>{}(id.index);
} }
}; };

View file

@ -274,7 +274,6 @@ add_library(video_core STATIC
texture_cache/image_view_info.h texture_cache/image_view_info.h
texture_cache/render_targets.h texture_cache/render_targets.h
texture_cache/samples_helper.h texture_cache/samples_helper.h
texture_cache/slot_vector.h
texture_cache/texture_cache.cpp texture_cache/texture_cache.cpp
texture_cache/texture_cache.h texture_cache/texture_cache.h
texture_cache/texture_cache_base.h texture_cache/texture_cache_base.h

View file

@ -41,7 +41,7 @@
#include "video_core/engines/maxwell_3d.h" #include "video_core/engines/maxwell_3d.h"
#include "video_core/memory_manager.h" #include "video_core/memory_manager.h"
#include "video_core/surface.h" #include "video_core/surface.h"
#include "video_core/texture_cache/slot_vector.h" #include "common/slot_vector.h"
#include "video_core/texture_cache/types.h" #include "video_core/texture_cache/types.h"
namespace boost { namespace boost {
@ -55,7 +55,7 @@ MICROPROFILE_DECLARE(GPU_PrepareBuffers);
MICROPROFILE_DECLARE(GPU_BindUploadBuffers); MICROPROFILE_DECLARE(GPU_BindUploadBuffers);
MICROPROFILE_DECLARE(GPU_DownloadMemory); MICROPROFILE_DECLARE(GPU_DownloadMemory);
using BufferId = SlotId; using BufferId = Common::SlotId;
using VideoCore::Surface::PixelFormat; using VideoCore::Surface::PixelFormat;
using namespace Common::Literals; using namespace Common::Literals;
@ -559,7 +559,7 @@ private:
Tegra::MaxwellDeviceMemoryManager& device_memory; Tegra::MaxwellDeviceMemoryManager& device_memory;
SlotVector<Buffer> slot_buffers; Common::SlotVector<Buffer> slot_buffers;
DelayedDestructionRing<Buffer, 8> delayed_destruction_ring; DelayedDestructionRing<Buffer, 8> delayed_destruction_ring;
const Tegra::Engines::DrawManager::IndirectParams* current_draw_indirect{}; const Tegra::Engines::DrawManager::IndirectParams* current_draw_indirect{};

View file

@ -18,12 +18,12 @@
#include "common/assert.h" #include "common/assert.h"
#include "common/settings.h" #include "common/settings.h"
#include "common/slot_vector.h"
#include "video_core/control/channel_state_cache.h" #include "video_core/control/channel_state_cache.h"
#include "video_core/engines/maxwell_3d.h" #include "video_core/engines/maxwell_3d.h"
#include "video_core/host1x/gpu_device_memory_manager.h" #include "video_core/host1x/gpu_device_memory_manager.h"
#include "video_core/memory_manager.h" #include "video_core/memory_manager.h"
#include "video_core/rasterizer_interface.h" #include "video_core/rasterizer_interface.h"
#include "video_core/texture_cache/slot_vector.h"
namespace VideoCore { namespace VideoCore {
enum class QueryType { enum class QueryType {
@ -37,7 +37,7 @@ constexpr std::size_t NumQueryTypes = static_cast<size_t>(QueryType::Count);
namespace VideoCommon { namespace VideoCommon {
using AsyncJobId = SlotId; using AsyncJobId = Common::SlotId;
static constexpr AsyncJobId NULL_ASYNC_JOB_ID{0}; static constexpr AsyncJobId NULL_ASYNC_JOB_ID{0};
@ -341,7 +341,7 @@ private:
static constexpr std::uintptr_t YUZU_PAGESIZE = 4096; static constexpr std::uintptr_t YUZU_PAGESIZE = 4096;
static constexpr unsigned YUZU_PAGEBITS = 12; static constexpr unsigned YUZU_PAGEBITS = 12;
SlotVector<AsyncJob> slot_async_jobs; Common::SlotVector<AsyncJob> slot_async_jobs;
VideoCore::RasterizerInterface& rasterizer; VideoCore::RasterizerInterface& rasterizer;
Tegra::MaxwellDeviceMemoryManager& device_memory; Tegra::MaxwellDeviceMemoryManager& device_memory;

View file

@ -90,7 +90,7 @@ public:
void PostCopyBarrier(); void PostCopyBarrier();
void Finish(); void Finish();
void TickFrame(VideoCommon::SlotVector<Buffer>&) noexcept {} void TickFrame(Common::SlotVector<Buffer>&) noexcept {}
void ClearBuffer(Buffer& dest_buffer, u32 offset, size_t size, u32 value); void ClearBuffer(Buffer& dest_buffer, u32 offset, size_t size, u32 value);

View file

@ -30,13 +30,13 @@ class Image;
class ImageView; class ImageView;
class Sampler; class Sampler;
using Common::SlotVector;
using VideoCommon::ImageId; using VideoCommon::ImageId;
using VideoCommon::ImageViewId; using VideoCommon::ImageViewId;
using VideoCommon::ImageViewType; using VideoCommon::ImageViewType;
using VideoCommon::NUM_RT; using VideoCommon::NUM_RT;
using VideoCommon::Region2D; using VideoCommon::Region2D;
using VideoCommon::RenderTargets; using VideoCommon::RenderTargets;
using VideoCommon::SlotVector;
struct FormatProperties { struct FormatProperties {
GLenum compatibility_class; GLenum compatibility_class;

View file

@ -368,7 +368,7 @@ u32 BufferCacheRuntime::GetStorageBufferAlignment() const {
return static_cast<u32>(device.GetStorageBufferAlignment()); return static_cast<u32>(device.GetStorageBufferAlignment());
} }
void BufferCacheRuntime::TickFrame(VideoCommon::SlotVector<Buffer>& slot_buffers) noexcept { void BufferCacheRuntime::TickFrame(Common::SlotVector<Buffer>& slot_buffers) noexcept {
for (auto it = slot_buffers.begin(); it != slot_buffers.end(); it++) { for (auto it = slot_buffers.begin(); it != slot_buffers.end(); it++) {
it->ResetUsageTracking(); it->ResetUsageTracking();
} }

View file

@ -81,7 +81,7 @@ public:
ComputePassDescriptorQueue& compute_pass_descriptor_queue, ComputePassDescriptorQueue& compute_pass_descriptor_queue,
DescriptorPool& descriptor_pool); DescriptorPool& descriptor_pool);
void TickFrame(VideoCommon::SlotVector<Buffer>& slot_buffers) noexcept; void TickFrame(Common::SlotVector<Buffer>& slot_buffers) noexcept;
void Finish(); void Finish();

View file

@ -20,11 +20,11 @@ struct ResolutionScalingInfo;
namespace Vulkan { namespace Vulkan {
using Common::SlotVector;
using VideoCommon::ImageId; using VideoCommon::ImageId;
using VideoCommon::NUM_RT; using VideoCommon::NUM_RT;
using VideoCommon::Region2D; using VideoCommon::Region2D;
using VideoCommon::RenderTargets; using VideoCommon::RenderTargets;
using VideoCommon::SlotVector;
using VideoCore::Surface::PixelFormat; using VideoCore::Surface::PixelFormat;
class BlitImageHelper; class BlitImageHelper;

View file

@ -21,6 +21,7 @@
#include "common/lru_cache.h" #include "common/lru_cache.h"
#include "common/polyfill_ranges.h" #include "common/polyfill_ranges.h"
#include "common/scratch_buffer.h" #include "common/scratch_buffer.h"
#include "common/slot_vector.h"
#include "common/thread_worker.h" #include "common/thread_worker.h"
#include "video_core/compatible_formats.h" #include "video_core/compatible_formats.h"
#include "video_core/control/channel_state_cache.h" #include "video_core/control/channel_state_cache.h"
@ -32,7 +33,6 @@
#include "video_core/texture_cache/image_info.h" #include "video_core/texture_cache/image_info.h"
#include "video_core/texture_cache/image_view_base.h" #include "video_core/texture_cache/image_view_base.h"
#include "video_core/texture_cache/render_targets.h" #include "video_core/texture_cache/render_targets.h"
#include "video_core/texture_cache/slot_vector.h"
#include "video_core/texture_cache/types.h" #include "video_core/texture_cache/types.h"
#include "video_core/textures/texture.h" #include "video_core/textures/texture.h"
@ -451,16 +451,16 @@ private:
struct PendingDownload { struct PendingDownload {
bool is_swizzle; bool is_swizzle;
size_t async_buffer_id; size_t async_buffer_id;
SlotId object_id; Common::SlotId object_id;
}; };
SlotVector<Image> slot_images; Common::SlotVector<Image> slot_images;
SlotVector<ImageMapView> slot_map_views; Common::SlotVector<ImageMapView> slot_map_views;
SlotVector<ImageView> slot_image_views; Common::SlotVector<ImageView> slot_image_views;
SlotVector<ImageAlloc> slot_image_allocs; Common::SlotVector<ImageAlloc> slot_image_allocs;
SlotVector<Sampler> slot_samplers; Common::SlotVector<Sampler> slot_samplers;
SlotVector<Framebuffer> slot_framebuffers; Common::SlotVector<Framebuffer> slot_framebuffers;
SlotVector<BufferDownload> slot_buffer_downloads; Common::SlotVector<BufferDownload> slot_buffer_downloads;
// TODO: This data structure is not optimal and it should be reworked // TODO: This data structure is not optimal and it should be reworked

View file

@ -5,21 +5,21 @@
#include "common/common_funcs.h" #include "common/common_funcs.h"
#include "common/common_types.h" #include "common/common_types.h"
#include "video_core/texture_cache/slot_vector.h" #include "common/slot_vector.h"
namespace VideoCommon { namespace VideoCommon {
constexpr size_t NUM_RT = 8; constexpr size_t NUM_RT = 8;
constexpr size_t MAX_MIP_LEVELS = 14; constexpr size_t MAX_MIP_LEVELS = 14;
constexpr SlotId CORRUPT_ID{0xfffffffe}; constexpr Common::SlotId CORRUPT_ID{0xfffffffe};
using ImageId = SlotId; using ImageId = Common::SlotId;
using ImageMapId = SlotId; using ImageMapId = Common::SlotId;
using ImageViewId = SlotId; using ImageViewId = Common::SlotId;
using ImageAllocId = SlotId; using ImageAllocId = Common::SlotId;
using SamplerId = SlotId; using SamplerId = Common::SlotId;
using FramebufferId = SlotId; using FramebufferId = Common::SlotId;
/// Fake image ID for null image views /// Fake image ID for null image views
constexpr ImageId NULL_IMAGE_ID{0}; constexpr ImageId NULL_IMAGE_ID{0};