mirror of
https://github.com/skyline-emu/skyline.git
synced 2024-11-23 01:59:19 +01:00
Correctly check the usage bits in DequeueBuffer and fix it's result
The extra parameters in result are required for retail games to accept it as valid.
This commit is contained in:
parent
a96b8eb7a3
commit
24d086cbec
@ -38,7 +38,7 @@ namespace skyline::service::hosbinder {
|
|||||||
i64 slot{-1};
|
i64 slot{-1};
|
||||||
while (slot == -1) {
|
while (slot == -1) {
|
||||||
for (auto &buffer : queue) {
|
for (auto &buffer : queue) {
|
||||||
if (buffer.second->status == BufferStatus::Free && buffer.second->gbpBuffer.width == data->width && buffer.second->gbpBuffer.height == data->height && buffer.second->gbpBuffer.usage == data->usage) {
|
if (buffer.second->status == BufferStatus::Free && buffer.second->gbpBuffer.width == data->width && buffer.second->gbpBuffer.height == data->height && (buffer.second->gbpBuffer.usage & data->usage) == data->usage) {
|
||||||
slot = buffer.first;
|
slot = buffer.first;
|
||||||
buffer.second->status = BufferStatus::Dequeued;
|
buffer.second->status = BufferStatus::Dequeued;
|
||||||
break;
|
break;
|
||||||
@ -51,7 +51,8 @@ namespace skyline::service::hosbinder {
|
|||||||
u32 slot;
|
u32 slot;
|
||||||
u32 _unk_[13];
|
u32 _unk_[13];
|
||||||
} output{
|
} output{
|
||||||
.slot = static_cast<u32>(slot)
|
.slot = static_cast<u32>(slot),
|
||||||
|
._unk_ = {1, 0x24}
|
||||||
};
|
};
|
||||||
out.WriteData(output);
|
out.WriteData(output);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user