mirror of
https://github.com/skyline-emu/skyline.git
synced 2024-12-28 08:05:29 +03:00
Use nvhost fences in IHOSBinderDriver
This commit is contained in:
parent
94d1b40faf
commit
cae270a174
@ -5,6 +5,7 @@
|
|||||||
#include <os.h>
|
#include <os.h>
|
||||||
#include <kernel/types/KProcess.h>
|
#include <kernel/types/KProcess.h>
|
||||||
#include <services/nvdrv/INvDrvServices.h>
|
#include <services/nvdrv/INvDrvServices.h>
|
||||||
|
#include <services/nvdrv/fence.h>
|
||||||
#include <gpu/format.h>
|
#include <gpu/format.h>
|
||||||
#include "IHOSBinderDriver.h"
|
#include "IHOSBinderDriver.h"
|
||||||
#include "display.h"
|
#include "display.h"
|
||||||
@ -70,7 +71,7 @@ namespace skyline::service::hosbinder {
|
|||||||
u32 stickyTransform;
|
u32 stickyTransform;
|
||||||
u64 _unk0_;
|
u64 _unk0_;
|
||||||
u32 swapInterval;
|
u32 swapInterval;
|
||||||
Fence fence[4];
|
nvdrv::Fence fence[4];
|
||||||
} *data = reinterpret_cast<Data *>(in.data.data());
|
} *data = reinterpret_cast<Data *>(in.data.data());
|
||||||
|
|
||||||
auto buffer = queue.at(data->slot);
|
auto buffer = queue.at(data->slot);
|
||||||
@ -104,7 +105,7 @@ namespace skyline::service::hosbinder {
|
|||||||
void IHOSBinderDriver::CancelBuffer(Parcel &parcel) {
|
void IHOSBinderDriver::CancelBuffer(Parcel &parcel) {
|
||||||
struct Data {
|
struct Data {
|
||||||
u32 slot;
|
u32 slot;
|
||||||
Fence fence[4];
|
nvdrv::Fence fence[4];
|
||||||
} *data = reinterpret_cast<Data *>(parcel.data.data());
|
} *data = reinterpret_cast<Data *>(parcel.data.data());
|
||||||
FreeBuffer(data->slot);
|
FreeBuffer(data->slot);
|
||||||
state.logger->Debug("CancelBuffer: Slot: {}", data->slot);
|
state.logger->Debug("CancelBuffer: Slot: {}", data->slot);
|
||||||
|
@ -31,14 +31,6 @@ namespace skyline::service::hosbinder {
|
|||||||
SetPreallocatedBuffer = 14, //!< No source on this but it's used to set a existing buffer according to libtransistor and libNX
|
SetPreallocatedBuffer = 14, //!< No source on this but it's used to set a existing buffer according to libtransistor and libNX
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief This represents conditions for the completion of an asynchronous graphics operation
|
|
||||||
*/
|
|
||||||
struct Fence {
|
|
||||||
u32 syncptId; //!< The ID of the syncpoint
|
|
||||||
u32 syncptValue; //!< The value of the syncpoint
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief nvnflinger:dispdrv or nns::hosbinder::IHOSBinderDriver is responsible for writing buffers to the display
|
* @brief nvnflinger:dispdrv or nns::hosbinder::IHOSBinderDriver is responsible for writing buffers to the display
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user