Add support for YUV allocations.
Change-Id: I21a47c745a2f8435af4f37ec0ad624002f3db555
diff --git a/driver/rsdAllocation.cpp b/driver/rsdAllocation.cpp
index 2f0c0d8..3ad29b6 100644
--- a/driver/rsdAllocation.cpp
+++ b/driver/rsdAllocation.cpp
@@ -208,7 +208,7 @@
}
RSD_CALL_GL(glBindRenderbuffer, GL_RENDERBUFFER, drv->renderTargetID);
RSD_CALL_GL(glRenderbufferStorage, GL_RENDERBUFFER, drv->glFormat,
- alloc->mHal.state.dimensionX, alloc->mHal.state.dimensionY);
+ alloc->mHal.drvState.lod[0].dimX, alloc->mHal.drvState.lod[0].dimY);
}
rsdGLCheckError(rsc, "AllocateRenderTarget");
#endif
@@ -399,6 +399,9 @@
void rsdAllocationResize(const Context *rsc, const Allocation *alloc,
const Type *newType, bool zeroNew) {
+ const uint32_t oldDimX = alloc->mHal.drvState.lod[0].dimX;
+ const uint32_t dimX = newType->getDimX();
+
// can't resize Allocations with user-allocated buffers
if (alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_SHARED) {
ALOGE("Resize cannot be called on a USAGE_SHARED allocation");
@@ -414,8 +417,6 @@
rsAssert(!"Size mismatch");
}
- const uint32_t oldDimX = alloc->mHal.state.dimensionX;
- const uint32_t dimX = newType->getDimX();
if (dimX > oldDimX) {
uint32_t stride = alloc->mHal.state.elementSizeBytes;
@@ -570,8 +571,8 @@
return;
}
- r = native_window_set_buffers_dimensions(nw, alloc->mHal.state.dimensionX,
- alloc->mHal.state.dimensionY);
+ r = native_window_set_buffers_dimensions(nw, alloc->mHal.drvState.lod[0].dimX,
+ alloc->mHal.drvState.lod[0].dimY);
if (r) {
rsc->setError(RS_ERROR_DRIVER, "Error setting IO output buffer dimensions.");
return;