Compare commits

..

6 commits

Author SHA1 Message Date
d6f5f3d36b
fix
All checks were successful
eden-license / license-header (pull_request) Successful in 26s
Signed-off-by: lizzie <lizzie@eden-emu.dev>
2025-09-26 23:41:55 +00:00
2b78c7d346
add MMPX filter
Signed-off-by: lizzie <lizzie@eden-emu.dev>
2025-09-26 23:41:55 +00:00
4937fbf82b
better logic
Signed-off-by: lizzie <lizzie@eden-emu.dev>
2025-09-26 23:41:55 +00:00
9dd47818ed
fix vk
Signed-off-by: lizzie <lizzie@eden-emu.dev>
2025-09-26 23:41:55 +00:00
2a67ec65c8
fix ogl
Signed-off-by: lizzie <lizzie@eden-emu.dev>
2025-09-26 23:41:55 +00:00
edbf773813
[vk, ogl] VK_QCOM ZTC, Bspline, Mitchell filter weights
Signed-off-by: lizzie <lizzie@eden-emu.dev>
2025-09-26 23:41:54 +00:00

View file

@ -12,7 +12,6 @@
#include <concepts>
#include <cstddef>
#include "common/alignment.h"
#include "common/assert.h"
#include "common/common_types.h"
#include "common/concepts.h"
@ -197,12 +196,7 @@ public:
constexpr Member* GetFront(s32 core) const {
ASSERT(IsValidCore(core));
const s32 priority = s32([](auto const& e) {
for (size_t i = 0; i < e.size(); ++i)
if (e[i])
return i;
return e.size();
}(m_available_priorities[core]));
const s32 priority = s32((~m_available_priorities[core]).count());
if (priority <= LowestPriority) {
return m_queues[priority].GetFront(core);
} else {
@ -221,22 +215,19 @@ public:
}
}
template<size_t N>
constexpr size_t GetNextSet(std::bitset<N> const& bit, size_t n) const {
for (size_t i = n + 1; i < bit.size(); i++)
if (bit[i])
return i;
return bit.size();
}
constexpr Member* GetNext(s32 core, const Member* member) const {
ASSERT(IsValidCore(core));
Member* next = member->GetPriorityQueueEntry(core).GetNext();
if (next == nullptr) {
s32 priority = s32(GetNextSet(m_available_priorities[core], member->GetPriority()));
if (priority <= LowestPriority)
next = m_queues[priority].GetFront(core);
s32 priority = member->GetPriority() + 1;
do {
if (m_available_priorities[core][priority]) {
next = m_queues[priority].GetFront(core);
break;
}
++priority;
} while (priority <= LowestPriority && priority < s32(m_available_priorities[core].size()));
}
return next;
}