Address Feedback from bylaws.
This commit is contained in:
parent
8a372035db
commit
c2b7de66b3
|
@ -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) {
|
||||||
|
|
|
@ -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()) {
|
||||||
|
|
Reference in New Issue