Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 181f1c33 authored by Jamie Gennis's avatar Jamie Gennis
Browse files

gl2_yuvtex: use the gralloc-provided stride.

This change fixes the gl2_yuvtex test to use the stride chosen by the
gralloc implementation rather than hard-coding it.

Bug: 4081948
Change-Id: If7c96a20fc3fb1df2ff25e6afaa9f34dbad2002c
parent 87c3bfac
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -186,11 +186,6 @@ const int yuvTexUsage = GraphicBuffer::USAGE_HW_TEXTURE |
        GraphicBuffer::USAGE_SW_WRITE_RARELY;
const int yuvTexFormat = HAL_PIXEL_FORMAT_YV12;
const int yuvTexOffsetY = 0;
const int yuvTexStrideY = (yuvTexWidth + 0xf) & ~0xf;
const int yuvTexOffsetV = yuvTexStrideY * yuvTexHeight;
const int yuvTexStrideV = (yuvTexStrideY/2 + 0xf) & ~0xf; 
const int yuvTexOffsetU = yuvTexOffsetV + yuvTexStrideV * yuvTexHeight/2;
const int yuvTexStrideU = yuvTexStrideV;
const bool yuvTexSameUV = false;
static sp<GraphicBuffer> yuvTexBuffer;
static GLuint yuvTex;
@@ -200,6 +195,11 @@ bool setupYuvTexSurface(EGLDisplay dpy, EGLContext context) {
    int blockHeight = yuvTexHeight > 16 ? yuvTexHeight / 16 : 1;
    yuvTexBuffer = new GraphicBuffer(yuvTexWidth, yuvTexHeight, yuvTexFormat,
            yuvTexUsage);
    int yuvTexStrideY = yuvTexBuffer->getStride();
    int yuvTexOffsetV = yuvTexStrideY * yuvTexHeight;
    int yuvTexStrideV = (yuvTexStrideY/2 + 0xf) & ~0xf;
    int yuvTexOffsetU = yuvTexOffsetV + yuvTexStrideV * yuvTexHeight/2;
    int yuvTexStrideU = yuvTexStrideV;
    char* buf = NULL;
    status_t err = yuvTexBuffer->lock(GRALLOC_USAGE_SW_WRITE_OFTEN, (void**)(&buf));
    if (err != 0) {