mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-04-10 05:28:56 +02:00
Compare commits
3 commits
76a2581462
...
b85ada5d0f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b85ada5d0f | ||
|
|
902c457094 | ||
|
|
fabf2e7b72 |
2 changed files with 12 additions and 7 deletions
|
|
@ -12,7 +12,11 @@
|
|||
#include <memory>
|
||||
#include <mutex>
|
||||
#include <optional>
|
||||
#if BOOST_VERSION >= 109000
|
||||
#include <boost/unordered/unordered_node_map.hpp>
|
||||
#else
|
||||
#include <unordered_map>
|
||||
#endif
|
||||
#include <ankerl/unordered_dense.h>
|
||||
#include <assert.h>
|
||||
|
||||
|
|
@ -141,7 +145,12 @@ public:
|
|||
void UnmapAllHandles(NvCore::SessionId session_id);
|
||||
|
||||
std::list<Handle::Id> unmap_queue{};
|
||||
boost::unordered_node_map<Handle::Id, Handle> handles{}; //!< Main owning map of handles
|
||||
/// Main owning map of handles
|
||||
#if BOOST_VERSION >= 109000
|
||||
boost::unordered_node_map<Handle::Id, Handle> handles{};
|
||||
#else
|
||||
std::unordered_map<Handle::Id, Handle> handles{};
|
||||
#endif
|
||||
std::mutex unmap_queue_lock{}; //!< Protects access to `unmap_queue`
|
||||
std::mutex handles_lock; //!< Protects access to `handles`
|
||||
static constexpr u32 HandleIdIncrement{4}; //!< Each new handle ID is an increment of 4 from the previous
|
||||
|
|
|
|||
|
|
@ -103,17 +103,13 @@ NvResult nvhost_nvdec_common::Submit(IoctlSubmit& params, std::span<u8> data, De
|
|||
|
||||
for (std::size_t i = 0; i < syncpt_increments.size(); i++) {
|
||||
const SyncptIncr& syncpt_incr = syncpt_increments[i];
|
||||
fence_thresholds[i] =
|
||||
syncpoint_manager.IncrementSyncpointMaxExt(syncpt_incr.id, syncpt_incr.increments);
|
||||
fence_thresholds[i] = syncpoint_manager.IncrementSyncpointMaxExt(syncpt_incr.id, syncpt_incr.increments);
|
||||
}
|
||||
|
||||
for (const auto& cmd_buffer : command_buffers) {
|
||||
const auto object = nvmap.GetHandle(cmd_buffer.memory_id);
|
||||
ASSERT_OR_EXECUTE(object, return NvResult::InvalidState;);
|
||||
Core::Memory::CpuGuestMemory<Tegra::ChCommandHeader,
|
||||
Core::Memory::GuestMemoryFlags::SafeRead>
|
||||
cmdlist(session->process->GetMemory(), object->address + cmd_buffer.offset,
|
||||
cmd_buffer.word_count);
|
||||
Core::Memory::CpuGuestMemory<Tegra::ChCommandHeader, Core::Memory::GuestMemoryFlags::SafeRead> cmdlist(session->process->GetMemory(), object->get().address + cmd_buffer.offset, cmd_buffer.word_count);
|
||||
host1x.PushEntries(fd, std::move(cmdlist));
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue