@@ -26,15 +26,28 @@ struct VideoNvFence
2626 uint32_t value ;
2727};
2828
29+ __interface IChannelState
30+ {
31+ bool Initialized () const = 0 ;
32+ int32_t BindId () const = 0 ;
33+ void Init (uint64_t programId ) = 0 ;
34+ void SetMemoryManager (uint32_t id ) = 0 ;
35+ void Release () = 0 ;
36+ };
37+
2938__interface IVideo
3039{
3140 bool Initialize (void ) = 0 ;
41+ uint32_t AllocAsEx (uint64_t addressSpaceBits , uint64_t splitAddress , uint64_t bigPageBits , uint64_t pageBits ) = 0 ;
42+ uint64_t MapBufferEx (uint64_t gpuAddr , uint64_t deviceAddr , uint64_t size , uint8_t kind , bool isBigPages ) = 0 ;
3243 uint64_t MemoryAllocate (uint64_t size ) = 0 ;
3344 void MemoryTrackContinuity (uint64_t address , uint64_t virtualAddress , uint64_t size , uint64_t asid ) = 0 ;
3445 void MemoryMap (uint64_t address , uint64_t virtualAddress , uint64_t size , uint64_t asid , bool track ) = 0 ;
3546 void RequestComposite (VideoFramebufferConfig * layers , uint32_t layerCount , VideoNvFence * fences , uint32_t fenceCount ) = 0 ;
3647 uint64_t RegisterProcess (IMemory * memory ) = 0 ;
3748 void UpdateFramebufferLayout (uint32_t width , uint32_t height ) = 0 ;
49+ IChannelState * AllocateChannel () = 0 ;
50+ void PushGPUEntries (int32_t bindId , const uint64_t * commandList , uint32_t commandListSize , const uint32_t * prefetchCommandlist , uint32_t prefetchCommandlistSize ) = 0 ;
3851};
3952
4053EXPORT IVideo * CALL CreateVideo (IRenderWindow & RenderWindow , ISwitchSystem & System );
0 commit comments