mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 02:38:04 +02:00
1D convolution (and post-conv scale/bias) were inadvertantly applied to 2D image transfers.
This commit is contained in:
parent
c5fe807e42
commit
249b451d20
3 changed files with 15 additions and 1 deletions
|
|
@ -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 */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue