mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-09-06 12:13:57 +00:00
Another intent
This commit is contained in:
@@ -428,17 +428,6 @@ bool BufferCache<P>::BindGraphicsStorageBuffer(size_t stage, size_t ssbo_index,
|
|||||||
u32 cbuf_offset, bool is_written, u32 descriptor_count) {
|
u32 cbuf_offset, bool is_written, u32 descriptor_count) {
|
||||||
const bool already_enabled =
|
const bool already_enabled =
|
||||||
((channel_state->enabled_storage_buffers[stage] >> ssbo_index) & 1U) != 0;
|
((channel_state->enabled_storage_buffers[stage] >> ssbo_index) & 1U) != 0;
|
||||||
if constexpr (requires { runtime.ShouldLimitDynamicStorageBuffers(); }) {
|
|
||||||
if (runtime.ShouldLimitDynamicStorageBuffers() && !already_enabled) {
|
|
||||||
const u32 max_bindings = runtime.GetMaxDynamicStorageBuffers();
|
|
||||||
if (channel_state->total_graphics_storage_buffers >= max_bindings) {
|
|
||||||
LOG_WARNING(HW_GPU,
|
|
||||||
"Skipping graphics storage buffer {} due to driver limit {}",
|
|
||||||
ssbo_index, max_bindings);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
channel_state->enabled_storage_buffers[stage] |= 1U << ssbo_index;
|
channel_state->enabled_storage_buffers[stage] |= 1U << ssbo_index;
|
||||||
channel_state->written_storage_buffers[stage] |= (is_written ? 1U : 0U) << ssbo_index;
|
channel_state->written_storage_buffers[stage] |= (is_written ? 1U : 0U) << ssbo_index;
|
||||||
if constexpr (requires { runtime.ShouldLimitDynamicStorageBuffers(); }) {
|
if constexpr (requires { runtime.ShouldLimitDynamicStorageBuffers(); }) {
|
||||||
@@ -506,17 +495,6 @@ void BufferCache<P>::BindComputeStorageBuffer(size_t ssbo_index, u32 cbuf_index,
|
|||||||
}
|
}
|
||||||
const bool already_enabled =
|
const bool already_enabled =
|
||||||
((channel_state->enabled_compute_storage_buffers >> ssbo_index) & 1U) != 0;
|
((channel_state->enabled_compute_storage_buffers >> ssbo_index) & 1U) != 0;
|
||||||
if constexpr (requires { runtime.ShouldLimitDynamicStorageBuffers(); }) {
|
|
||||||
if (runtime.ShouldLimitDynamicStorageBuffers() && !already_enabled) {
|
|
||||||
const u32 max_bindings = runtime.GetMaxDynamicStorageBuffers();
|
|
||||||
if (channel_state->total_compute_storage_buffers >= max_bindings) {
|
|
||||||
LOG_WARNING(HW_GPU,
|
|
||||||
"Skipping compute storage buffer {} due to driver limit {}",
|
|
||||||
ssbo_index, max_bindings);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
channel_state->enabled_compute_storage_buffers |= 1U << ssbo_index;
|
channel_state->enabled_compute_storage_buffers |= 1U << ssbo_index;
|
||||||
channel_state->written_compute_storage_buffers |= (is_written ? 1U : 0U) << ssbo_index;
|
channel_state->written_compute_storage_buffers |= (is_written ? 1U : 0U) << ssbo_index;
|
||||||
if constexpr (requires { runtime.ShouldLimitDynamicStorageBuffers(); }) {
|
if constexpr (requires { runtime.ShouldLimitDynamicStorageBuffers(); }) {
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ class UpdateDescriptorQueue final {
|
|||||||
static constexpr size_t FRAMES_IN_FLIGHT = 8;
|
static constexpr size_t FRAMES_IN_FLIGHT = 8;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static constexpr size_t GUEST_FRAME_PAYLOAD_SIZE = 0x40000;
|
static constexpr size_t GUEST_FRAME_PAYLOAD_SIZE = 0x80000;
|
||||||
static constexpr size_t COMPUTE_FRAME_PAYLOAD_SIZE = 0x20000;
|
static constexpr size_t COMPUTE_FRAME_PAYLOAD_SIZE = 0x20000;
|
||||||
|
|
||||||
explicit UpdateDescriptorQueue(const Device& device_, size_t frame_payload_size_,
|
explicit UpdateDescriptorQueue(const Device& device_, size_t frame_payload_size_,
|
||||||
|
|||||||
Reference in New Issue
Block a user