Browse Source

i965/gen6+: Work around GPU hangs with logic ops on integer textures.

This doesn't result in correct rendering -- GL requires that logic ops
work, while the hardware specs say it doesn't do them.  I'm not sure
how we would want to handle this.

NOTE: This is a candidate for the 8.0 branch.
tags/i965-primitive-restart-v2
Eric Anholt 13 years ago
parent
commit
f6e82cd2a1
1 changed files with 7 additions and 2 deletions
  1. 7
    2
      src/mesa/drivers/dri/i965/gen6_cc.c

+ 7
- 2
src/mesa/drivers/dri/i965/gen6_cc.c View File

@@ -79,9 +79,14 @@ gen6_upload_blend_state(struct brw_context *brw)
/* _NEW_COLOR */
if (ctx->Color.ColorLogicOpEnabled) {
/* Floating point RTs should have no effect from LogicOp,
* except for disabling of blending
* except for disabling of blending.
*
* From the Sandy Bridge PRM, Vol 2 Par 1, Section 8.1.11, "Logic Ops",
*
* "Logic Ops are only supported on *_UNORM surfaces (excluding
* _SRGB variants), otherwise Logic Ops must be DISABLED."
*/
if (rb_type != GL_FLOAT) {
if (rb_type == GL_UNSIGNED_NORMALIZED) {
blend[b].blend1.logic_op_enable = 1;
blend[b].blend1.logic_op_func =
intel_translate_logic_op(ctx->Color.LogicOp);

Loading…
Cancel
Save