mirror of
https://github.com/yuzu-emu/yuzu.git
synced 2024-11-26 22:25:46 +01:00
VideoCore: Move Slot Vector to Common
This commit is contained in:
parent
5da55cbac9
commit
4841dc0b74
@ -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
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
};
|
};
|
@ -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
|
||||||
|
@ -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{};
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
|
@ -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();
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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};
|
||||||
|
Loading…
Reference in New Issue
Block a user