Lines Matching defs:pCtx
41 static void vboxHwBufferFlush(PHGSMIGUESTCOMMANDCONTEXT pCtx);
42 static void vboxHwBufferPlaceDataAt(PVBVABUFFERCONTEXT pCtx, const void *p,
44 static bool vboxHwBufferWrite(PVBVABUFFERCONTEXT pCtx,
49 static bool vboxVBVAInformHost(PVBVABUFFERCONTEXT pCtx,
72 pEnable->Base.u32Offset = pCtx->offVRAMBuffer;
101 DECLHIDDEN(bool) VBoxVBVAEnable(PVBVABUFFERCONTEXT pCtx,
113 // LogFunc(("pVBVA %p vbva off 0x%x\n", pVBVA, pCtx->offVRAMBuffer));
123 pVBVA->cbData = pCtx->cbBuffer - sizeof (VBVABUFFER) + sizeof (pVBVA->au8Data);
125 pCtx->fHwBufferOverflow = false;
126 pCtx->pRecord = NULL;
127 pCtx->pVBVA = pVBVA;
129 bRc = vboxVBVAInformHost(pCtx, pHGSMICtx, cScreen, true);
134 VBoxVBVADisable(pCtx, pHGSMICtx, cScreen);
140 DECLHIDDEN(void) VBoxVBVADisable(PVBVABUFFERCONTEXT pCtx,
146 pCtx->fHwBufferOverflow = false;
147 pCtx->pRecord = NULL;
148 pCtx->pVBVA = NULL;
150 vboxVBVAInformHost(pCtx, pHGSMICtx, cScreen, false);
155 DECLHIDDEN(bool) VBoxVBVABufferBeginUpdate(PVBVABUFFERCONTEXT pCtx,
160 // LogFunc(("flags = 0x%08X\n", pCtx->pVBVA? pCtx->pVBVA->u32HostEvents: -1));
162 if ( pCtx->pVBVA
163 && (pCtx->pVBVA->hostFlags.u32HostEvents & VBVA_F_MODE_ENABLED))
167 Assert(!pCtx->fHwBufferOverflow);
168 Assert(pCtx->pRecord == NULL);
170 indexRecordNext = (pCtx->pVBVA->indexRecordFree + 1) % VBVA_MAX_RECORDS;
172 if (indexRecordNext == pCtx->pVBVA->indexRecordFirst)
178 if (indexRecordNext == pCtx->pVBVA->indexRecordFirst)
182 // pCtx->pVBVA->indexRecordFirst, pCtx->pVBVA->indexRecordFree));
187 VBVARECORD *pRecord = &pCtx->pVBVA->aRecords[pCtx->pVBVA->indexRecordFree];
191 pCtx->pVBVA->indexRecordFree = indexRecordNext;
196 pCtx->pRecord = pRecord;
205 DECLHIDDEN(void) VBoxVBVABufferEndUpdate(PVBVABUFFERCONTEXT pCtx)
211 Assert(pCtx->pVBVA);
213 pRecord = pCtx->pRecord;
219 pCtx->fHwBufferOverflow = false;
220 pCtx->pRecord = NULL;
235 static void vboxHwBufferFlush(PHGSMIGUESTCOMMANDCONTEXT pCtx)
238 void *p = VBoxHGSMIBufferAlloc(pCtx,
252 VBoxHGSMIBufferSubmit(pCtx, p);
254 VBoxHGSMIBufferFree(pCtx, p);
260 static void vboxHwBufferPlaceDataAt(PVBVABUFFERCONTEXT pCtx, const void *p,
263 VBVABUFFER *pVBVA = pCtx->pVBVA;
283 static bool vboxHwBufferWrite(PVBVABUFFERCONTEXT pCtx,
292 VBVABUFFER *pVBVA = pCtx->pVBVA;
295 if (!pVBVA || pCtx->fHwBufferOverflow)
302 pRecord = pCtx->pRecord;
332 pCtx->fHwBufferOverflow = true;
344 vboxHwBufferPlaceDataAt (pCtx, (uint8_t *)p + cbWritten, cbChunk, pVBVA->off32Free);
360 DECLHIDDEN(bool) VBoxVBVAWrite(PVBVABUFFERCONTEXT pCtx,
364 return vboxHwBufferWrite (pCtx, pHGSMICtx, pv, cb);
367 DECLHIDDEN(bool) VBoxVBVAOrderSupported(PVBVABUFFERCONTEXT pCtx, unsigned code)
369 VBVABUFFER *pVBVA = pCtx->pVBVA;
384 DECLHIDDEN(void) VBoxVBVASetupBufferContext(PVBVABUFFERCONTEXT pCtx,
388 pCtx->offVRAMBuffer = offVRAMBuffer;
389 pCtx->cbBuffer = cbBuffer;