1D convolution (and post-conv scale/bias) were inadvertantly applied to 2D image transfers.
This commit is contained in:
@@ -199,7 +199,7 @@ copy_rgba_pixels(GLcontext *ctx, GLint srcx, GLint srcy,
|
||||
GLint sy, dy, stepy, row;
|
||||
const GLboolean zoom = ctx->Pixel.ZoomX != 1.0F || ctx->Pixel.ZoomY != 1.0F;
|
||||
GLint overlapping;
|
||||
const GLuint transferOps = ctx->_ImageTransferState;
|
||||
GLuint transferOps = ctx->_ImageTransferState;
|
||||
SWspan span;
|
||||
|
||||
if (!ctx->ReadBuffer->_ColorReadBuffer) {
|
||||
@@ -211,6 +211,11 @@ copy_rgba_pixels(GLcontext *ctx, GLint srcx, GLint srcy,
|
||||
copy_conv_rgba_pixels(ctx, srcx, srcy, width, height, destx, desty);
|
||||
return;
|
||||
}
|
||||
else if (ctx->Pixel.Convolution1DEnabled) {
|
||||
/* make sure we don't apply 1D convolution */
|
||||
transferOps &= ~(IMAGE_CONVOLUTION_BIT |
|
||||
IMAGE_POST_CONVOLUTION_SCALE_BIAS);
|
||||
}
|
||||
|
||||
/* Determine if copy should be done bottom-to-top or top-to-bottom */
|
||||
if (srcy < desty) {
|
||||
|
@@ -619,6 +619,11 @@ draw_rgba_pixels( GLcontext *ctx, GLint x, GLint y,
|
||||
type = GL_FLOAT;
|
||||
transferOps &= IMAGE_POST_CONVOLUTION_BITS;
|
||||
}
|
||||
else if (ctx->Pixel.Convolution1DEnabled) {
|
||||
/* we only want to apply 1D convolution to glTexImage1D */
|
||||
transferOps &= ~(IMAGE_CONVOLUTION_BIT |
|
||||
IMAGE_POST_CONVOLUTION_SCALE_BIAS);
|
||||
}
|
||||
|
||||
if (ctx->DrawBuffer->_NumColorDrawBuffers[0] > 0 &&
|
||||
ctx->DrawBuffer->_ColorDrawBuffers[0][0]->DataType != GL_FLOAT &&
|
||||
|
@@ -410,6 +410,10 @@ read_rgba_pixels( GLcontext *ctx,
|
||||
= (GLubyte *) _mesa_image_address2d(packing, pixels, width, height,
|
||||
format, type, 0, 0);
|
||||
|
||||
/* make sure we don't apply 1D convolution */
|
||||
transferOps &= ~(IMAGE_CONVOLUTION_BIT |
|
||||
IMAGE_POST_CONVOLUTION_SCALE_BIAS);
|
||||
|
||||
for (row = 0; row < height; row++, y++) {
|
||||
|
||||
/* Get float rgba pixels */
|
||||
|
Reference in New Issue
Block a user