diff options
Diffstat (limited to 'src/mesa/drivers/dri/i915/intel_blit.c')
-rw-r--r-- | src/mesa/drivers/dri/i915/intel_blit.c | 34 |
1 files changed, 8 insertions, 26 deletions
diff --git a/src/mesa/drivers/dri/i915/intel_blit.c b/src/mesa/drivers/dri/i915/intel_blit.c index 279db28b7eb..551f18ffd2e 100644 --- a/src/mesa/drivers/dri/i915/intel_blit.c +++ b/src/mesa/drivers/dri/i915/intel_blit.c @@ -48,27 +48,9 @@ intel_miptree_set_alpha_to_one(struct intel_context *intel, struct intel_mipmap_tree *mt, int x, int y, int width, int height); -static GLuint translate_raster_op(GLenum logicop) +static GLuint translate_raster_op(enum gl_logicop_mode logicop) { - switch(logicop) { - case GL_CLEAR: return 0x00; - case GL_AND: return 0x88; - case GL_AND_REVERSE: return 0x44; - case GL_COPY: return 0xCC; - case GL_AND_INVERTED: return 0x22; - case GL_NOOP: return 0xAA; - case GL_XOR: return 0x66; - case GL_OR: return 0xEE; - case GL_NOR: return 0x11; - case GL_EQUIV: return 0x99; - case GL_INVERT: return 0x55; - case GL_OR_REVERSE: return 0xDD; - case GL_COPY_INVERTED: return 0x33; - case GL_OR_INVERTED: return 0xBB; - case GL_NAND: return 0x77; - case GL_SET: return 0xFF; - default: return 0; - } + return logicop | (logicop << 4); } static uint32_t @@ -114,7 +96,7 @@ intel_miptree_blit(struct intel_context *intel, int dst_level, int dst_slice, uint32_t dst_x, uint32_t dst_y, bool dst_flip, uint32_t width, uint32_t height, - GLenum logicop) + enum gl_logicop_mode logicop) { /* No sRGB decode or encode is done by the hardware blitter, which is * consistent with what we want in the callers (glCopyTexSubImage(), @@ -227,7 +209,7 @@ intelEmitCopyBlit(struct intel_context *intel, GLshort src_x, GLshort src_y, GLshort dst_x, GLshort dst_y, GLshort w, GLshort h, - GLenum logic_op) + enum gl_logicop_mode logic_op) { GLuint CMD, BR13, pass = 0; int dst_y2 = dst_y + h; @@ -523,7 +505,7 @@ intelEmitImmediateColorExpandBlit(struct intel_context *intel, uint32_t dst_tiling, GLshort x, GLshort y, GLshort w, GLshort h, - GLenum logic_op) + enum gl_logicop_mode logic_op) { int dwords = ALIGN(src_size, 8) / 4; uint32_t opcode, br13, blit_cmd; @@ -535,7 +517,7 @@ intelEmitImmediateColorExpandBlit(struct intel_context *intel, return false; } - assert((logic_op >= GL_CLEAR) && (logic_op <= (GL_CLEAR + 0x0f))); + assert((unsigned)logic_op <= 0x0f); assert(dst_pitch > 0); if (w < 0 || h < 0) @@ -613,7 +595,7 @@ intel_emit_linear_blit(struct intel_context *intel, 0, 0, /* src x/y */ 0, 0, /* dst x/y */ pitch, height, /* w, h */ - GL_COPY); + COLOR_LOGICOP_COPY); if (!ok) _mesa_problem(ctx, "Failed to linear blit %dx%d\n", pitch, height); @@ -629,7 +611,7 @@ intel_emit_linear_blit(struct intel_context *intel, 0, 0, /* src x/y */ 0, 0, /* dst x/y */ size, 1, /* w, h */ - GL_COPY); + COLOR_LOGICOP_COPY); if (!ok) _mesa_problem(ctx, "Failed to linear blit %dx%d\n", size, 1); } |