~ubuntu-branches/ubuntu/precise/mesa/precise-updates

« back to all changes in this revision

Viewing changes to src/mesa/drivers/dri/i915/i915_texstate.c

  • Committer: Package Import Robot
  • Author(s): Robert Hooker
  • Date: 2012-02-02 12:05:48 UTC
  • mfrom: (1.7.1) (3.3.27 sid)
  • Revision ID: package-import@ubuntu.com-20120202120548-nvkma85jq0h4coix
Tags: 8.0~rc2-0ubuntu4
Drop drisearchdir handling, it is no longer needed with multiarch
and dri-alternates being removed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
60
60
      return MAPSURF_32BIT | MT_32BIT_ARGB8888;
61
61
   case MESA_FORMAT_XRGB8888:
62
62
      return MAPSURF_32BIT | MT_32BIT_XRGB8888;
 
63
   case MESA_FORMAT_RGBA8888_REV:
 
64
      return MAPSURF_32BIT | MT_32BIT_ABGR8888;
63
65
   case MESA_FORMAT_YCBCR_REV:
64
66
      return (MAPSURF_422 | MT_422_YCRCB_NORMAL);
65
67
   case MESA_FORMAT_YCBCR:
82
84
   case MESA_FORMAT_RGBA_DXT5:
83
85
      return (MAPSURF_COMPRESSED | MT_COMPRESS_DXT4_5);
84
86
   case MESA_FORMAT_S8_Z24:
 
87
   case MESA_FORMAT_X8_Z24:
85
88
      if (DepthMode == GL_ALPHA)
86
89
         return (MAPSURF_32BIT | MT_32BIT_x8A24);
87
90
      else if (DepthMode == GL_INTENSITY)
89
92
      else
90
93
         return (MAPSURF_32BIT | MT_32BIT_x8L24);
91
94
   default:
92
 
      fprintf(stderr, "%s: bad image format %x\n", __FUNCTION__, mesa_format);
 
95
      fprintf(stderr, "%s: bad image format %s\n", __FUNCTION__,
 
96
              _mesa_get_format_name(mesa_format));
93
97
      abort();
94
98
      return 0;
95
99
   }
127
131
 * efficient, but this has gotten complex enough that we need
128
132
 * something which is understandable and reliable.
129
133
 */
130
 
static GLboolean
 
134
static bool
131
135
i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
132
136
{
133
137
   struct gl_context *ctx = &intel->ctx;
152
156
   }
153
157
 
154
158
   if (!intel_finalize_mipmap_tree(intel, unit))
155
 
      return GL_FALSE;
 
159
      return false;
156
160
 
157
161
   /* Get first image here, since intelObj->firstLevel will get set in
158
162
    * the intel_finalize_mipmap_tree() call above.
159
163
    */
160
164
   firstImage = tObj->Image[0][tObj->BaseLevel];
161
165
 
162
 
   drm_intel_bo_reference(intelObj->mt->region->buffer);
163
 
   i915->state.tex_buffer[unit] = intelObj->mt->region->buffer;
 
166
   drm_intel_bo_reference(intelObj->mt->region->bo);
 
167
   i915->state.tex_buffer[unit] = intelObj->mt->region->bo;
164
168
   i915->state.tex_offset[unit] = 0; /* Always the origin of the miptree */
165
169
 
166
170
   format = translate_texture_format(firstImage->TexFormat,
218
222
         mipFilt = MIPFILTER_LINEAR;
219
223
         break;
220
224
      default:
221
 
         return GL_FALSE;
 
225
         return false;
222
226
      }
223
227
 
224
228
      if (sampler->MaxAnisotropy > 1.0) {
238
242
            magFilt = FILTER_LINEAR;
239
243
            break;
240
244
         default:
241
 
            return GL_FALSE;
 
245
            return false;
242
246
         }
243
247
      }
244
248
 
261
265
      if (sampler->CompareMode == GL_COMPARE_R_TO_TEXTURE_ARB &&
262
266
          tObj->Target != GL_TEXTURE_3D) {
263
267
         if (tObj->Target == GL_TEXTURE_1D) 
264
 
            return GL_FALSE;
 
268
            return false;
265
269
 
266
270
         state[I915_TEXREG_SS2] |=
267
271
            (SS2_SHADOW_ENABLE |
305
309
           wr == GL_CLAMP ||
306
310
           ws == GL_CLAMP_TO_BORDER ||
307
311
           wt == GL_CLAMP_TO_BORDER || wr == GL_CLAMP_TO_BORDER))
308
 
         return GL_FALSE;
 
312
         return false;
309
313
 
310
314
      /* Only support TEXCOORDMODE_CLAMP_EDGE and TEXCOORDMODE_CUBE (not 
311
315
       * used) when using cube map texture coordinates
313
317
      if (tObj->Target == GL_TEXTURE_CUBE_MAP_ARB &&
314
318
          (((ws != GL_CLAMP) && (ws != GL_CLAMP_TO_EDGE)) ||
315
319
           ((wt != GL_CLAMP) && (wt != GL_CLAMP_TO_EDGE))))
316
 
          return GL_FALSE;
 
320
          return false;
317
321
 
318
322
      state[I915_TEXREG_SS3] = ss3;     /* SS3_NORMALIZED_COORDS */
319
323
 
352
356
   }
353
357
 
354
358
 
355
 
   I915_ACTIVESTATE(i915, I915_UPLOAD_TEX(unit), GL_TRUE);
 
359
   I915_ACTIVESTATE(i915, I915_UPLOAD_TEX(unit), true);
356
360
   /* memcmp was already disabled, but definitely won't work as the
357
361
    * region might now change and that wouldn't be detected:
358
362
    */
368
372
   DBG(TEXTURE, "state[I915_TEXREG_MS4] = 0x%x\n", state[I915_TEXREG_MS4]);
369
373
#endif
370
374
 
371
 
   return GL_TRUE;
 
375
   return true;
372
376
}
373
377
 
374
378
 
377
381
void
378
382
i915UpdateTextureState(struct intel_context *intel)
379
383
{
380
 
   GLboolean ok = GL_TRUE;
 
384
   bool ok = true;
381
385
   GLuint i;
382
386
 
383
387
   for (i = 0; i < I915_TEX_UNITS && ok; i++) {
394
398
      case 0:{
395
399
            struct i915_context *i915 = i915_context(&intel->ctx);
396
400
            if (i915->state.active & I915_UPLOAD_TEX(i))
397
 
               I915_ACTIVESTATE(i915, I915_UPLOAD_TEX(i), GL_FALSE);
 
401
               I915_ACTIVESTATE(i915, I915_UPLOAD_TEX(i), false);
398
402
 
399
403
            if (i915->state.tex_buffer[i] != NULL) {
400
404
               drm_intel_bo_unreference(i915->state.tex_buffer[i]);
404
408
            break;
405
409
         }
406
410
      default:
407
 
         ok = GL_FALSE;
 
411
         ok = false;
408
412
         break;
409
413
      }
410
414
   }