• Home
  • Raw
  • Download

Lines Matching refs:alloc

90 uint8_t *GetOffsetPtr(const android::renderscript::Allocation *alloc,  in GetOffsetPtr()  argument
93 uint8_t *ptr = (uint8_t *)alloc->mHal.drvState.lod[lod].mallocPtr; in GetOffsetPtr()
94 ptr += face * alloc->mHal.drvState.faceOffset; in GetOffsetPtr()
95 ptr += zoff * alloc->mHal.drvState.lod[lod].dimY * alloc->mHal.drvState.lod[lod].stride; in GetOffsetPtr()
96 ptr += yoff * alloc->mHal.drvState.lod[lod].stride; in GetOffsetPtr()
97 ptr += xoff * alloc->mHal.state.elementSizeBytes; in GetOffsetPtr()
102 static void Update2DTexture(const Context *rsc, const Allocation *alloc, const void *ptr, in Update2DTexture() argument
106 DrvAllocation *drv = (DrvAllocation *)alloc->mHal.drv; in Update2DTexture()
112 if (alloc->mHal.state.hasFaces) { in Update2DTexture()
121 static void Upload2DTexture(const Context *rsc, const Allocation *alloc, bool isFirstUpload) { in Upload2DTexture() argument
122 DrvAllocation *drv = (DrvAllocation *)alloc->mHal.drv; in Upload2DTexture()
128 if (alloc->mHal.state.hasFaces) { in Upload2DTexture()
134 for (uint32_t lod = 0; lod < alloc->mHal.state.type->getLODCount(); lod++) { in Upload2DTexture()
135 const uint8_t *p = GetOffsetPtr(alloc, 0, 0, 0, lod, (RsAllocationCubemapFace)face); in Upload2DTexture()
138 if (alloc->mHal.state.hasFaces) { in Upload2DTexture()
144 alloc->mHal.state.type->getLODDimX(lod), in Upload2DTexture()
145 alloc->mHal.state.type->getLODDimY(lod), in Upload2DTexture()
149 alloc->mHal.state.type->getLODDimX(lod), in Upload2DTexture()
150 alloc->mHal.state.type->getLODDimY(lod), in Upload2DTexture()
156 if (alloc->mHal.state.mipmapControl == RS_ALLOCATION_MIPMAP_ON_SYNC_TO_TEXTURE) { in Upload2DTexture()
163 static void UploadToTexture(const Context *rsc, const Allocation *alloc) { in UploadToTexture() argument
165 DrvAllocation *drv = (DrvAllocation *)alloc->mHal.drv; in UploadToTexture()
167 if (alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_IO_INPUT) { in UploadToTexture()
178 if (!alloc->mHal.drvState.lod[0].mallocPtr) { in UploadToTexture()
189 Upload2DTexture(rsc, alloc, isFirstUpload); in UploadToTexture()
191 if (!(alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_SCRIPT)) { in UploadToTexture()
192 if (alloc->mHal.drvState.lod[0].mallocPtr) { in UploadToTexture()
193 free(alloc->mHal.drvState.lod[0].mallocPtr); in UploadToTexture()
194 alloc->mHal.drvState.lod[0].mallocPtr = NULL; in UploadToTexture()
201 static void AllocateRenderTarget(const Context *rsc, const Allocation *alloc) { in AllocateRenderTarget() argument
203 DrvAllocation *drv = (DrvAllocation *)alloc->mHal.drv; in AllocateRenderTarget()
220 alloc->mHal.drvState.lod[0].dimX, alloc->mHal.drvState.lod[0].dimY); in AllocateRenderTarget()
226 static void UploadToBufferObject(const Context *rsc, const Allocation *alloc) { in UploadToBufferObject() argument
228 DrvAllocation *drv = (DrvAllocation *)alloc->mHal.drv; in UploadToBufferObject()
230 rsAssert(!alloc->mHal.state.type->getDimY()); in UploadToBufferObject()
231 rsAssert(!alloc->mHal.state.type->getDimZ()); in UploadToBufferObject()
244 RSD_CALL_GL(glBufferData, drv->glTarget, alloc->mHal.state.type->getSizeBytes(), in UploadToBufferObject()
245 alloc->mHal.drvState.lod[0].mallocPtr, GL_DYNAMIC_DRAW); in UploadToBufferObject()
292 static size_t AllocationBuildPointerTable(const Context *rsc, const Allocation *alloc, in AllocationBuildPointerTable() argument
294 alloc->mHal.drvState.lod[0].dimX = type->getDimX(); in AllocationBuildPointerTable()
295 alloc->mHal.drvState.lod[0].dimY = type->getDimY(); in AllocationBuildPointerTable()
296 alloc->mHal.drvState.lod[0].dimZ = type->getDimZ(); in AllocationBuildPointerTable()
297 alloc->mHal.drvState.lod[0].mallocPtr = 0; in AllocationBuildPointerTable()
299 size_t stride = alloc->mHal.drvState.lod[0].dimX * type->getElementSizeBytes(); in AllocationBuildPointerTable()
300 alloc->mHal.drvState.lod[0].stride = rsRound(stride, 16); in AllocationBuildPointerTable()
301 alloc->mHal.drvState.lodCount = type->getLODCount(); in AllocationBuildPointerTable()
302 alloc->mHal.drvState.faceCount = type->getDimFaces(); in AllocationBuildPointerTable()
307 size_t o = alloc->mHal.drvState.lod[0].stride * rsMax(alloc->mHal.drvState.lod[0].dimY, 1u) * in AllocationBuildPointerTable()
308 rsMax(alloc->mHal.drvState.lod[0].dimZ, 1u); in AllocationBuildPointerTable()
309 if(alloc->mHal.drvState.lodCount > 1) { in AllocationBuildPointerTable()
310 uint32_t tx = alloc->mHal.drvState.lod[0].dimX; in AllocationBuildPointerTable()
311 uint32_t ty = alloc->mHal.drvState.lod[0].dimY; in AllocationBuildPointerTable()
312 uint32_t tz = alloc->mHal.drvState.lod[0].dimZ; in AllocationBuildPointerTable()
313 for (uint32_t lod=1; lod < alloc->mHal.drvState.lodCount; lod++) { in AllocationBuildPointerTable()
314 alloc->mHal.drvState.lod[lod].dimX = tx; in AllocationBuildPointerTable()
315 alloc->mHal.drvState.lod[lod].dimY = ty; in AllocationBuildPointerTable()
316 alloc->mHal.drvState.lod[lod].dimZ = tz; in AllocationBuildPointerTable()
317 alloc->mHal.drvState.lod[lod].stride = in AllocationBuildPointerTable()
320 o += alloc->mHal.drvState.lod[lod].stride * rsMax(ty, 1u) * rsMax(tz, 1u); in AllocationBuildPointerTable()
325 } else if (alloc->mHal.state.yuv) { in AllocationBuildPointerTable()
326 o += DeriveYUVLayout(alloc->mHal.state.yuv, &alloc->mHal.drvState); in AllocationBuildPointerTable()
328 for (uint32_t ct = 1; ct < alloc->mHal.drvState.lodCount; ct++) { in AllocationBuildPointerTable()
329 offsets[ct] = (size_t)alloc->mHal.drvState.lod[ct].mallocPtr; in AllocationBuildPointerTable()
333 alloc->mHal.drvState.faceOffset = o; in AllocationBuildPointerTable()
335 alloc->mHal.drvState.lod[0].mallocPtr = ptr; in AllocationBuildPointerTable()
336 for (uint32_t lod=1; lod < alloc->mHal.drvState.lodCount; lod++) { in AllocationBuildPointerTable()
337 alloc->mHal.drvState.lod[lod].mallocPtr = ptr + offsets[lod]; in AllocationBuildPointerTable()
340 size_t allocSize = alloc->mHal.drvState.faceOffset; in AllocationBuildPointerTable()
341 if(alloc->mHal.drvState.faceCount) { in AllocationBuildPointerTable()
360 bool rsdAllocationInit(const Context *rsc, Allocation *alloc, bool forceZero) { in rsdAllocationInit() argument
365 alloc->mHal.drv = drv; in rsdAllocationInit()
368 size_t allocSize = AllocationBuildPointerTable(rsc, alloc, alloc->getType(), NULL); in rsdAllocationInit()
371 if (alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_IO_OUTPUT) { in rsdAllocationInit()
373 } else if (alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_IO_INPUT) { in rsdAllocationInit()
376 } else if (alloc->mHal.state.userProvidedPtr != NULL) { in rsdAllocationInit()
379 … if (!(alloc->mHal.state.usageFlags == (RS_ALLOCATION_USAGE_SCRIPT | RS_ALLOCATION_USAGE_SHARED) || in rsdAllocationInit()
380alloc->mHal.state.usageFlags == (RS_ALLOCATION_USAGE_SCRIPT | RS_ALLOCATION_USAGE_SHARED | RS_ALLO… in rsdAllocationInit()
384 if (alloc->getType()->getDimLOD() || alloc->getType()->getDimFaces()) { in rsdAllocationInit()
391 … if (((alloc->getType()->getDimX() * alloc->getType()->getElement()->getSizeBytes()) % 16) != 0) { in rsdAllocationInit()
397 alloc->mHal.drv = NULL; in rsdAllocationInit()
404 ptr = (uint8_t*)alloc->mHal.state.userProvidedPtr; in rsdAllocationInit()
409 alloc->mHal.drv = NULL; in rsdAllocationInit()
415 size_t verifySize = AllocationBuildPointerTable(rsc, alloc, alloc->getType(), ptr); in rsdAllocationInit()
422 if (alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_GRAPHICS_TEXTURE) { in rsdAllocationInit()
423 if (alloc->mHal.state.hasFaces) { in rsdAllocationInit()
429 if (alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_GRAPHICS_VERTEX) { in rsdAllocationInit()
436 drv->glType = rsdTypeToGLType(alloc->mHal.state.type->getElement()->getComponent().getType()); in rsdAllocationInit()
437 … drv->glFormat = rsdKindToGLFormat(alloc->mHal.state.type->getElement()->getComponent().getKind()); in rsdAllocationInit()
443 if (alloc->mHal.state.usageFlags & ~RS_ALLOCATION_USAGE_SCRIPT) { in rsdAllocationInit()
451 if ((alloc->mHal.state.userProvidedPtr != 0) && (drv->useUserProvidedPtr == false)) { in rsdAllocationInit()
452 …ationData2D(rsc, alloc, 0, 0, 0, RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_X, alloc->getType()->getDimX(… in rsdAllocationInit()
458 void rsdAllocationDestroy(const Context *rsc, Allocation *alloc) { in rsdAllocationDestroy() argument
459 DrvAllocation *drv = (DrvAllocation *)alloc->mHal.drv; in rsdAllocationDestroy()
478 if (alloc->mHal.drvState.lod[0].mallocPtr) { in rsdAllocationDestroy()
481 !(alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_IO_INPUT) && in rsdAllocationDestroy()
482 !(alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_IO_OUTPUT)) { in rsdAllocationDestroy()
483 free(alloc->mHal.drvState.lod[0].mallocPtr); in rsdAllocationDestroy()
485 alloc->mHal.drvState.lod[0].mallocPtr = NULL; in rsdAllocationDestroy()
494 if ((alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_IO_OUTPUT) && in rsdAllocationDestroy()
495 (alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_SCRIPT)) { in rsdAllocationDestroy()
497 DrvAllocation *drv = (DrvAllocation *)alloc->mHal.drv; in rsdAllocationDestroy()
508 alloc->mHal.drv = NULL; in rsdAllocationDestroy()
511 void rsdAllocationResize(const Context *rsc, const Allocation *alloc, in rsdAllocationResize() argument
513 const uint32_t oldDimX = alloc->mHal.drvState.lod[0].dimX; in rsdAllocationResize()
517 if (alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_SHARED) { in rsdAllocationResize()
521 void * oldPtr = alloc->mHal.drvState.lod[0].mallocPtr; in rsdAllocationResize()
523 size_t s = AllocationBuildPointerTable(rsc, alloc, newType, NULL); in rsdAllocationResize()
526 size_t verifySize = AllocationBuildPointerTable(rsc, alloc, newType, ptr); in rsdAllocationResize()
533 size_t stride = alloc->mHal.state.elementSizeBytes; in rsdAllocationResize()
534 memset(((uint8_t *)alloc->mHal.drvState.lod[0].mallocPtr) + stride * oldDimX, in rsdAllocationResize()
539 static void rsdAllocationSyncFromFBO(const Context *rsc, const Allocation *alloc) { in rsdAllocationSyncFromFBO() argument
541 if (!alloc->getIsScript()) { in rsdAllocationSyncFromFBO()
548 DrvAllocation *drv = (DrvAllocation *)alloc->mHal.drv; in rsdAllocationSyncFromFBO()
555 drv->readBackFBO->setDimensions(alloc->getType()->getDimX(), in rsdAllocationSyncFromFBO()
556 alloc->getType()->getDimY()); in rsdAllocationSyncFromFBO()
563 RSD_CALL_GL(glReadPixels, 0, 0, alloc->mHal.drvState.lod[0].dimX, in rsdAllocationSyncFromFBO()
564 alloc->mHal.drvState.lod[0].dimY, in rsdAllocationSyncFromFBO()
565 drv->glFormat, drv->glType, alloc->mHal.drvState.lod[0].mallocPtr); in rsdAllocationSyncFromFBO()
573 void rsdAllocationSyncAll(const Context *rsc, const Allocation *alloc, in rsdAllocationSyncAll() argument
575 DrvAllocation *drv = (DrvAllocation *)alloc->mHal.drv; in rsdAllocationSyncAll()
578 if(!alloc->getIsRenderTarget()) { in rsdAllocationSyncAll()
582 } else if (alloc->getType()->getElement()->getKind() != RS_KIND_PIXEL_RGBA) { in rsdAllocationSyncAll()
586 rsdAllocationSyncFromFBO(rsc, alloc); in rsdAllocationSyncAll()
593 if (alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_GRAPHICS_TEXTURE) { in rsdAllocationSyncAll()
594 UploadToTexture(rsc, alloc); in rsdAllocationSyncAll()
596 if ((alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_GRAPHICS_RENDER_TARGET) && in rsdAllocationSyncAll()
597 !(alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_IO_OUTPUT)) { in rsdAllocationSyncAll()
598 AllocateRenderTarget(rsc, alloc); in rsdAllocationSyncAll()
601 if (alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_GRAPHICS_VERTEX) { in rsdAllocationSyncAll()
602 UploadToBufferObject(rsc, alloc); in rsdAllocationSyncAll()
605 if (alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_SHARED) { in rsdAllocationSyncAll()
612 void rsdAllocationMarkDirty(const Context *rsc, const Allocation *alloc) { in rsdAllocationMarkDirty() argument
613 DrvAllocation *drv = (DrvAllocation *)alloc->mHal.drv; in rsdAllocationMarkDirty()
619 intptr_t ip = (intptr_t)alloc; in onFrameAvailable()
624 void* rsdAllocationGetSurface(const Context *rsc, const Allocation *alloc) { in rsdAllocationGetSurface() argument
626 DrvAllocation *drv = (DrvAllocation *)alloc->mHal.drv; in rsdAllocationGetSurface()
635 drv->mBufferListener->alloc = alloc; in rsdAllocationGetSurface()
646 static bool IoGetBuffer(const Context *rsc, Allocation *alloc, ANativeWindow *nw) { in IoGetBuffer() argument
647 DrvAllocation *drv = (DrvAllocation *)alloc->mHal.drv; in IoGetBuffer()
663 alloc->mHal.drvState.lod[0].mallocPtr = dst; in IoGetBuffer()
664alloc->mHal.drvState.lod[0].stride = drv->wndBuffer->stride * alloc->mHal.state.elementSizeBytes; in IoGetBuffer()
665 rsAssert((alloc->mHal.drvState.lod[0].stride & 0xf) == 0); in IoGetBuffer()
671 void rsdAllocationSetSurface(const Context *rsc, Allocation *alloc, ANativeWindow *nw) { in rsdAllocationSetSurface() argument
673 DrvAllocation *drv = (DrvAllocation *)alloc->mHal.drv; in rsdAllocationSetSurface()
680 if (alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_GRAPHICS_RENDER_TARGET) { in rsdAllocationSetSurface()
700 if (alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_SCRIPT) { in rsdAllocationSetSurface()
703 if (alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_GRAPHICS_RENDER_TARGET) { in rsdAllocationSetSurface()
713 r = native_window_set_buffers_dimensions(nw, alloc->mHal.drvState.lod[0].dimX, in rsdAllocationSetSurface()
714 alloc->mHal.drvState.lod[0].dimY); in rsdAllocationSetSurface()
721 const Element *e = alloc->mHal.state.type->getElement(); in rsdAllocationSetSurface()
747 IoGetBuffer(rsc, alloc, nw); in rsdAllocationSetSurface()
763 void rsdAllocationIoSend(const Context *rsc, Allocation *alloc) { in rsdAllocationIoSend() argument
765 DrvAllocation *drv = (DrvAllocation *)alloc->mHal.drv; in rsdAllocationIoSend()
767 if (alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_GRAPHICS_RENDER_TARGET) { in rsdAllocationIoSend()
773 if (alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_SCRIPT) { in rsdAllocationIoSend()
782 IoGetBuffer(rsc, alloc, nw); in rsdAllocationIoSend()
791 void rsdAllocationIoReceive(const Context *rsc, Allocation *alloc) { in rsdAllocationIoReceive() argument
793 DrvAllocation *drv = (DrvAllocation *)alloc->mHal.drv; in rsdAllocationIoReceive()
795 if (alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_SCRIPT) { in rsdAllocationIoReceive()
803 alloc->mHal.drvState.lod[0].mallocPtr = drv->lb.data; in rsdAllocationIoReceive()
804 alloc->mHal.drvState.lod[0].stride = drv->lb.stride * in rsdAllocationIoReceive()
805 alloc->mHal.state.elementSizeBytes; in rsdAllocationIoReceive()
807 if (alloc->mHal.state.yuv) { in rsdAllocationIoReceive()
808 DeriveYUVLayout(alloc->mHal.state.yuv, &alloc->mHal.drvState); in rsdAllocationIoReceive()
825 void rsdAllocationData1D(const Context *rsc, const Allocation *alloc, in rsdAllocationData1D() argument
828 DrvAllocation *drv = (DrvAllocation *)alloc->mHal.drv; in rsdAllocationData1D()
830 const size_t eSize = alloc->mHal.state.type->getElementSizeBytes(); in rsdAllocationData1D()
831 uint8_t * ptr = GetOffsetPtr(alloc, xoff, 0, 0, 0, RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_X); in rsdAllocationData1D()
837 if (alloc->mHal.state.hasReferences) { in rsdAllocationData1D()
838 alloc->incRefs(data, count); in rsdAllocationData1D()
839 alloc->decRefs(ptr, count); in rsdAllocationData1D()
846 void rsdAllocationData2D(const Context *rsc, const Allocation *alloc, in rsdAllocationData2D() argument
849 DrvAllocation *drv = (DrvAllocation *)alloc->mHal.drv; in rsdAllocationData2D()
851 size_t eSize = alloc->mHal.state.elementSizeBytes; in rsdAllocationData2D()
857 if (alloc->mHal.drvState.lod[0].mallocPtr) { in rsdAllocationData2D()
859 uint8_t *dst = GetOffsetPtr(alloc, xoff, yoff, 0, lod, face); in rsdAllocationData2D()
868 if (alloc->mHal.state.hasReferences) { in rsdAllocationData2D()
869 alloc->incRefs(src, w); in rsdAllocationData2D()
870 alloc->decRefs(dst, w); in rsdAllocationData2D()
874 dst += alloc->mHal.drvState.lod[lod].stride; in rsdAllocationData2D()
876 if (alloc->mHal.state.yuv) { in rsdAllocationData2D()
878 while (alloc->mHal.drvState.lod[lod].mallocPtr) { in rsdAllocationData2D()
879 size_t lineSize = alloc->mHal.drvState.lod[lod].dimX; in rsdAllocationData2D()
880 uint8_t *dst = GetOffsetPtr(alloc, xoff, yoff, 0, lod, face); in rsdAllocationData2D()
885 dst += alloc->mHal.drvState.lod[lod].stride; in rsdAllocationData2D()
893 Update2DTexture(rsc, alloc, data, xoff, yoff, lod, face, w, h); in rsdAllocationData2D()
897 void rsdAllocationData3D(const Context *rsc, const Allocation *alloc, in rsdAllocationData3D() argument
902 DrvAllocation *drv = (DrvAllocation *)alloc->mHal.drv; in rsdAllocationData3D()
904 uint32_t eSize = alloc->mHal.state.elementSizeBytes; in rsdAllocationData3D()
910 if (alloc->mHal.drvState.lod[0].mallocPtr) { in rsdAllocationData3D()
913 uint8_t *dst = GetOffsetPtr(alloc, xoff, yoff, z, lod, in rsdAllocationData3D()
923 if (alloc->mHal.state.hasReferences) { in rsdAllocationData3D()
924 alloc->incRefs(src, w); in rsdAllocationData3D()
925 alloc->decRefs(dst, w); in rsdAllocationData3D()
929 dst += alloc->mHal.drvState.lod[lod].stride; in rsdAllocationData3D()
936 void rsdAllocationRead1D(const Context *rsc, const Allocation *alloc, in rsdAllocationRead1D() argument
939 const size_t eSize = alloc->mHal.state.type->getElementSizeBytes(); in rsdAllocationRead1D()
940 const uint8_t * ptr = GetOffsetPtr(alloc, xoff, 0, 0, 0, RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_X); in rsdAllocationRead1D()
948 void rsdAllocationRead2D(const Context *rsc, const Allocation *alloc, in rsdAllocationRead2D() argument
951 size_t eSize = alloc->mHal.state.elementSizeBytes; in rsdAllocationRead2D()
957 if (alloc->mHal.drvState.lod[0].mallocPtr) { in rsdAllocationRead2D()
959 const uint8_t *src = GetOffsetPtr(alloc, xoff, yoff, 0, lod, face); in rsdAllocationRead2D()
969 src += alloc->mHal.drvState.lod[lod].stride; in rsdAllocationRead2D()
977 void rsdAllocationRead3D(const Context *rsc, const Allocation *alloc, in rsdAllocationRead3D() argument
981 uint32_t eSize = alloc->mHal.state.elementSizeBytes; in rsdAllocationRead3D()
987 if (alloc->mHal.drvState.lod[0].mallocPtr) { in rsdAllocationRead3D()
990 const uint8_t *src = GetOffsetPtr(alloc, xoff, yoff, z, lod, in rsdAllocationRead3D()
1001 src += alloc->mHal.drvState.lod[lod].stride; in rsdAllocationRead3D()
1008 const android::renderscript::Allocation *alloc) { in rsdAllocationLock1D() argument
1009 return alloc->mHal.drvState.lod[0].mallocPtr; in rsdAllocationLock1D()
1013 const android::renderscript::Allocation *alloc) { in rsdAllocationUnlock1D() argument
1099 void rsdAllocationElementData1D(const Context *rsc, const Allocation *alloc, in rsdAllocationElementData1D() argument
1102 DrvAllocation *drv = (DrvAllocation *)alloc->mHal.drv; in rsdAllocationElementData1D()
1104 size_t eSize = alloc->mHal.state.elementSizeBytes; in rsdAllocationElementData1D()
1105 uint8_t * ptr = GetOffsetPtr(alloc, x, 0, 0, 0, RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_X); in rsdAllocationElementData1D()
1107 const Element * e = alloc->mHal.state.type->getElement()->getField(cIdx); in rsdAllocationElementData1D()
1108 ptr += alloc->mHal.state.type->getElement()->getFieldOffsetBytes(cIdx); in rsdAllocationElementData1D()
1110 if (alloc->mHal.state.hasReferences) { in rsdAllocationElementData1D()
1119 void rsdAllocationElementData2D(const Context *rsc, const Allocation *alloc, in rsdAllocationElementData2D() argument
1122 DrvAllocation *drv = (DrvAllocation *)alloc->mHal.drv; in rsdAllocationElementData2D()
1124 size_t eSize = alloc->mHal.state.elementSizeBytes; in rsdAllocationElementData2D()
1125 uint8_t * ptr = GetOffsetPtr(alloc, x, y, 0, 0, RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_X); in rsdAllocationElementData2D()
1127 const Element * e = alloc->mHal.state.type->getElement()->getField(cIdx); in rsdAllocationElementData2D()
1128 ptr += alloc->mHal.state.type->getElement()->getFieldOffsetBytes(cIdx); in rsdAllocationElementData2D()
1130 if (alloc->mHal.state.hasReferences) { in rsdAllocationElementData2D()
1139 static void mip565(const Allocation *alloc, int lod, RsAllocationCubemapFace face) { in mip565() argument
1140 uint32_t w = alloc->mHal.drvState.lod[lod + 1].dimX; in mip565()
1141 uint32_t h = alloc->mHal.drvState.lod[lod + 1].dimY; in mip565()
1144 uint16_t *oPtr = (uint16_t *)GetOffsetPtr(alloc, 0, y, 0, lod + 1, face); in mip565()
1145 const uint16_t *i1 = (uint16_t *)GetOffsetPtr(alloc, 0, 0, y*2, lod, face); in mip565()
1146 const uint16_t *i2 = (uint16_t *)GetOffsetPtr(alloc, 0, 0, y*2+1, lod, face); in mip565()
1157 static void mip8888(const Allocation *alloc, int lod, RsAllocationCubemapFace face) { in mip8888() argument
1158 uint32_t w = alloc->mHal.drvState.lod[lod + 1].dimX; in mip8888()
1159 uint32_t h = alloc->mHal.drvState.lod[lod + 1].dimY; in mip8888()
1162 uint32_t *oPtr = (uint32_t *)GetOffsetPtr(alloc, 0, y, 0, lod + 1, face); in mip8888()
1163 const uint32_t *i1 = (uint32_t *)GetOffsetPtr(alloc, 0, y*2, 0, lod, face); in mip8888()
1164 const uint32_t *i2 = (uint32_t *)GetOffsetPtr(alloc, 0, y*2+1, 0, lod, face); in mip8888()
1175 static void mip8(const Allocation *alloc, int lod, RsAllocationCubemapFace face) { in mip8() argument
1176 uint32_t w = alloc->mHal.drvState.lod[lod + 1].dimX; in mip8()
1177 uint32_t h = alloc->mHal.drvState.lod[lod + 1].dimY; in mip8()
1180 uint8_t *oPtr = GetOffsetPtr(alloc, 0, y, 0, lod + 1, face); in mip8()
1181 const uint8_t *i1 = GetOffsetPtr(alloc, 0, y*2, 0, lod, face); in mip8()
1182 const uint8_t *i2 = GetOffsetPtr(alloc, 0, y*2+1, 0, lod, face); in mip8()
1193 void rsdAllocationGenerateMipmaps(const Context *rsc, const Allocation *alloc) { in rsdAllocationGenerateMipmaps() argument
1194 if(!alloc->mHal.drvState.lod[0].mallocPtr) { in rsdAllocationGenerateMipmaps()
1197 uint32_t numFaces = alloc->getType()->getDimFaces() ? 6 : 1; in rsdAllocationGenerateMipmaps()
1199 for (uint32_t lod=0; lod < (alloc->getType()->getLODCount() -1); lod++) { in rsdAllocationGenerateMipmaps()
1200 switch (alloc->getType()->getElement()->getSizeBits()) { in rsdAllocationGenerateMipmaps()
1202 mip8888(alloc, lod, (RsAllocationCubemapFace)face); in rsdAllocationGenerateMipmaps()
1205 mip565(alloc, lod, (RsAllocationCubemapFace)face); in rsdAllocationGenerateMipmaps()
1208 mip8(alloc, lod, (RsAllocationCubemapFace)face); in rsdAllocationGenerateMipmaps()