Address Feedback from bylaws.

This commit is contained in:
Fernando Sahmkow 2022-06-27 21:23:06 +02:00
parent 8a372035db
commit c2b7de66b3
3 changed files with 3 additions and 7 deletions

View File

@ -41,22 +41,18 @@ NvResult NvMap::Handle::Alloc(Flags pFlags, u32 pAlign, u8 pKind, u64 pAddress)
size = Common::AlignUp(size, YUZU_PAGESIZE); size = Common::AlignUp(size, YUZU_PAGESIZE);
aligned_size = Common::AlignUp(size, align); aligned_size = Common::AlignUp(size, align);
address = pAddress; address = pAddress;
// TODO: pin init
allocated = true; allocated = true;
return NvResult::Success; return NvResult::Success;
} }
NvResult NvMap::Handle::Duplicate(bool internal_session) { NvResult NvMap::Handle::Duplicate(bool internal_session) {
std::scoped_lock lock(mutex);
// Unallocated handles cannot be duplicated as duplication requires memory accounting (in HOS) // Unallocated handles cannot be duplicated as duplication requires memory accounting (in HOS)
if (!allocated) [[unlikely]] { if (!allocated) [[unlikely]] {
return NvResult::BadValue; return NvResult::BadValue;
} }
std::scoped_lock lock(mutex);
// If we internally use FromId the duplication tracking of handles won't work accurately due to // If we internally use FromId the duplication tracking of handles won't work accurately due to
// us not implementing per-process handle refs. // us not implementing per-process handle refs.
if (internal_session) { if (internal_session) {

View File

@ -270,12 +270,12 @@ NvResult nvhost_gpu::SubmitGPFIFOImpl(IoctlSubmitGpfifo& params, std::vector<u8>
} }
} }
gpu.PushGPUEntries(bind_id, std::move(entries));
params.fence.id = channel_syncpoint; params.fence.id = channel_syncpoint;
u32 increment{(flags.fence_increment.Value() != 0 ? 2 : 0) + u32 increment{(flags.fence_increment.Value() != 0 ? 2 : 0) +
(flags.increment_value.Value() != 0 ? params.fence.value : 0)}; (flags.increment_value.Value() != 0 ? params.fence.value : 0)};
params.fence.value = syncpoint_manager.IncrementSyncpointMaxExt(channel_syncpoint, increment); params.fence.value = syncpoint_manager.IncrementSyncpointMaxExt(channel_syncpoint, increment);
gpu.PushGPUEntries(bind_id, std::move(entries));
if (flags.fence_increment.Value()) { if (flags.fence_increment.Value()) {
if (flags.suppress_wfi.Value()) { if (flags.suppress_wfi.Value()) {

View File

@ -66,7 +66,7 @@ void QueryPool::Reserve(std::pair<VkQueryPool, u32> query) {
} }
QueryCache::QueryCache(VideoCore::RasterizerInterface& rasterizer_, const Device& device_, QueryCache::QueryCache(VideoCore::RasterizerInterface& rasterizer_, const Device& device_,
Scheduler& scheduler_) Scheduler& scheduler_)
: QueryCacheBase{rasterizer_}, device{device_}, scheduler{scheduler_}, : QueryCacheBase{rasterizer_}, device{device_}, scheduler{scheduler_},
query_pools{ query_pools{
QueryPool{device_, scheduler_, QueryType::SamplesPassed}, QueryPool{device_, scheduler_, QueryType::SamplesPassed},