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

« back to all changes in this revision

Viewing changes to src/gallium/include/pipe/p_defines.h

  • 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:
99
99
#define PIPE_MASK_B  0x4
100
100
#define PIPE_MASK_A  0x8
101
101
#define PIPE_MASK_RGBA 0xf
 
102
#define PIPE_MASK_Z  0x10
 
103
#define PIPE_MASK_S  0x20
 
104
#define PIPE_MASK_ZS 0x30
102
105
 
103
106
 
104
107
/**
223
226
   PIPE_TRANSFER_MAP_DIRECTLY = (1 << 2),
224
227
 
225
228
   /**
 
229
    * The transfer should map the resource storage directly and the GPU should
 
230
    * be able to see what the CPU has written. Such a storage may stay mapped
 
231
    * while issuing draw commands which use it. The only allowed usage is
 
232
    * non-overlapping writes which are suballocated out of a big buffer.
 
233
    * The minimum allowed alignment of suballocations is 256 bytes (this is
 
234
    * a subject to change).
 
235
    * The flag is intended to be used to avoid mapping and unmapping
 
236
    * resources repeatedly when doing uploads and draws intermixed.
 
237
    *
 
238
    * The driver may return NULL if that isn't possible, and the state
 
239
    * tracker needs to cope with that and use an alternative path
 
240
    * without this flag.
 
241
    */
 
242
   PIPE_TRANSFER_MAP_PERMANENTLY = (1 << 3),
 
243
 
 
244
   /**
226
245
    * Discards the memory within the mapped region.
227
246
    *
228
247
    * It should not be used with PIPE_TRANSFER_READ.
230
249
    * See also:
231
250
    * - OpenGL's ARB_map_buffer_range extension, MAP_INVALIDATE_RANGE_BIT flag.
232
251
    */
233
 
   PIPE_TRANSFER_DISCARD = (1 << 8), /* DEPRECATED */
234
252
   PIPE_TRANSFER_DISCARD_RANGE = (1 << 8),
235
253
 
236
254
   /**
292
310
 */
293
311
#define PIPE_BIND_DEPTH_STENCIL        (1 << 0) /* create_surface */
294
312
#define PIPE_BIND_RENDER_TARGET        (1 << 1) /* create_surface */
295
 
#define PIPE_BIND_SAMPLER_VIEW         (1 << 2) /* create_sampler_view */
296
 
#define PIPE_BIND_VERTEX_BUFFER        (1 << 3) /* set_vertex_buffers */
297
 
#define PIPE_BIND_INDEX_BUFFER         (1 << 4) /* draw_elements */
298
 
#define PIPE_BIND_CONSTANT_BUFFER      (1 << 5) /* set_constant_buffer */
 
313
#define PIPE_BIND_BLENDABLE            (1 << 2) /* create_surface */
 
314
#define PIPE_BIND_SAMPLER_VIEW         (1 << 3) /* create_sampler_view */
 
315
#define PIPE_BIND_VERTEX_BUFFER        (1 << 4) /* set_vertex_buffers */
 
316
#define PIPE_BIND_INDEX_BUFFER         (1 << 5) /* draw_elements */
 
317
#define PIPE_BIND_CONSTANT_BUFFER      (1 << 6) /* set_constant_buffer */
299
318
#define PIPE_BIND_DISPLAY_TARGET       (1 << 8) /* flush_front_buffer */
300
319
#define PIPE_BIND_TRANSFER_WRITE       (1 << 9) /* get_transfer */
301
320
#define PIPE_BIND_TRANSFER_READ        (1 << 10) /* get_transfer */
371
390
 * Query object types
372
391
 */
373
392
#define PIPE_QUERY_OCCLUSION_COUNTER     0
374
 
#define PIPE_QUERY_PRIMITIVES_GENERATED  1
375
 
#define PIPE_QUERY_PRIMITIVES_EMITTED    2
376
 
#define PIPE_QUERY_TIME_ELAPSED          3
377
 
#define PIPE_QUERY_SO_STATISTICS         5
378
 
#define PIPE_QUERY_GPU_FINISHED          6
379
 
#define PIPE_QUERY_TIMESTAMP_DISJOINT    7
380
 
#define PIPE_QUERY_OCCLUSION_PREDICATE   8
381
 
#define PIPE_QUERY_TYPES                 9
 
393
#define PIPE_QUERY_OCCLUSION_PREDICATE   1
 
394
#define PIPE_QUERY_TIMESTAMP             2
 
395
#define PIPE_QUERY_TIMESTAMP_DISJOINT    3
 
396
#define PIPE_QUERY_TIME_ELAPSED          4
 
397
#define PIPE_QUERY_PRIMITIVES_GENERATED  5
 
398
#define PIPE_QUERY_PRIMITIVES_EMITTED    6
 
399
#define PIPE_QUERY_SO_STATISTICS         7
 
400
#define PIPE_QUERY_SO_OVERFLOW_PREDICATE 8
 
401
#define PIPE_QUERY_GPU_FINISHED          9
 
402
#define PIPE_QUERY_PIPELINE_STATISTICS  10
 
403
#define PIPE_QUERY_TYPES                11
382
404
 
383
405
 
384
406
/**
412
434
 
413
435
/**
414
436
 * Implementation capabilities/limits which are queried through
415
 
 * pipe_screen::get_param() and pipe_screen::get_paramf().
 
437
 * pipe_screen::get_param()
416
438
 */
417
439
enum pipe_cap {
418
 
   PIPE_CAP_MAX_TEXTURE_IMAGE_UNITS = 0,
419
440
   PIPE_CAP_NPOT_TEXTURES = 1,
420
441
   PIPE_CAP_TWO_SIDED_STENCIL = 2,
421
 
   PIPE_CAP_GLSL = 3,  /* XXX need something better */
422
442
   PIPE_CAP_DUAL_SOURCE_BLEND = 4,
423
443
   PIPE_CAP_ANISOTROPIC_FILTER = 5,
424
444
   PIPE_CAP_POINT_SPRITE = 6,
430
450
   PIPE_CAP_MAX_TEXTURE_2D_LEVELS = 12,
431
451
   PIPE_CAP_MAX_TEXTURE_3D_LEVELS = 13,
432
452
   PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS = 14,
433
 
   PIPE_CAP_MAX_LINE_WIDTH = 15,
434
 
   PIPE_CAP_MAX_LINE_WIDTH_AA = 16,
435
 
   PIPE_CAP_MAX_POINT_WIDTH = 17,
436
 
   PIPE_CAP_MAX_POINT_WIDTH_AA = 18,
437
 
   PIPE_CAP_MAX_TEXTURE_ANISOTROPY = 19,
438
 
   PIPE_CAP_MAX_TEXTURE_LOD_BIAS = 20,
439
 
   PIPE_CAP_GUARD_BAND_LEFT = 21,  /*< float */
440
 
   PIPE_CAP_GUARD_BAND_TOP = 22,  /*< float */
441
 
   PIPE_CAP_GUARD_BAND_RIGHT = 23,  /*< float */
442
 
   PIPE_CAP_GUARD_BAND_BOTTOM = 24,  /*< float */
443
453
   PIPE_CAP_TEXTURE_MIRROR_CLAMP = 25,
444
 
   PIPE_CAP_TEXTURE_MIRROR_REPEAT = 26,
445
 
   PIPE_CAP_MAX_VERTEX_TEXTURE_UNITS = 27,
446
454
   PIPE_CAP_BLEND_EQUATION_SEPARATE = 28,
447
455
   PIPE_CAP_SM3 = 29,  /*< Shader Model, supported */
448
 
   PIPE_CAP_STREAM_OUTPUT = 30,
 
456
   PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS = 30,
449
457
   PIPE_CAP_PRIMITIVE_RESTART = 31,
450
458
   /** Maximum texture image units accessible from vertex and fragment shaders
451
459
    * combined */
455
463
   /** different blend funcs per rendertarget */
456
464
   PIPE_CAP_INDEP_BLEND_FUNC = 34,
457
465
   PIPE_CAP_DEPTHSTENCIL_CLEAR_SEPARATE = 35,
458
 
   PIPE_CAP_ARRAY_TEXTURES = 36,
 
466
   PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS = 36,
459
467
   PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT = 37,
460
468
   PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT = 38,
461
469
   PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER = 39,
462
470
   PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER = 40,
463
 
   PIPE_CAP_DEPTH_CLAMP = 41,
 
471
   PIPE_CAP_DEPTH_CLIP_DISABLE = 41,
464
472
   PIPE_CAP_SHADER_STENCIL_EXPORT = 42,
465
473
   PIPE_CAP_TGSI_INSTANCEID = 43,
466
474
   PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR = 44,
468
476
   PIPE_CAP_MIXED_COLORBUFFER_FORMATS = 46,
469
477
   PIPE_CAP_SEAMLESS_CUBE_MAP = 47,
470
478
   PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE = 48,
 
479
   PIPE_CAP_SCALED_RESOLVE = 49,
 
480
   PIPE_CAP_MIN_TEXEL_OFFSET = 50,
 
481
   PIPE_CAP_MAX_TEXEL_OFFSET = 51,
 
482
   PIPE_CAP_CONDITIONAL_RENDER = 52,
 
483
   PIPE_CAP_TEXTURE_BARRIER = 53,
 
484
   PIPE_CAP_MAX_STREAM_OUTPUT_SEPARATE_COMPONENTS = 55,
 
485
   PIPE_CAP_MAX_STREAM_OUTPUT_INTERLEAVED_COMPONENTS = 56,
 
486
   PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME = 57,
 
487
   PIPE_CAP_TGSI_CAN_COMPACT_VARYINGS = 58, /* temporary */
 
488
   PIPE_CAP_TGSI_CAN_COMPACT_CONSTANTS = 59 /* temporary */
 
489
};
 
490
 
 
491
/**
 
492
 * Implementation limits which are queried through
 
493
 * pipe_screen::get_paramf()
 
494
 */
 
495
enum pipe_capf
 
496
{
 
497
   PIPE_CAPF_MAX_LINE_WIDTH = 15,
 
498
   PIPE_CAPF_MAX_LINE_WIDTH_AA = 16,
 
499
   PIPE_CAPF_MAX_POINT_WIDTH = 17,
 
500
   PIPE_CAPF_MAX_POINT_WIDTH_AA = 18,
 
501
   PIPE_CAPF_MAX_TEXTURE_ANISOTROPY = 19,
 
502
   PIPE_CAPF_MAX_TEXTURE_LOD_BIAS = 20,
 
503
   PIPE_CAPF_GUARD_BAND_LEFT = 21,
 
504
   PIPE_CAPF_GUARD_BAND_TOP = 22,
 
505
   PIPE_CAPF_GUARD_BAND_RIGHT = 23,
 
506
   PIPE_CAPF_GUARD_BAND_BOTTOM = 24
471
507
};
472
508
 
473
509
/* Shader caps not specific to any single stage */
491
527
   PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR = 14,
492
528
   PIPE_SHADER_CAP_INDIRECT_CONST_ADDR = 15,
493
529
   PIPE_SHADER_CAP_SUBROUTINES = 16, /* BGNSUB, ENDSUB, CAL, RET */
 
530
   PIPE_SHADER_CAP_INTEGERS = 17,
 
531
   PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS = 18,
 
532
   PIPE_SHADER_CAP_OUTPUT_READ = 19
494
533
};
495
534
 
496
535
 
508
547
   boolean  disjoint;
509
548
};
510
549
 
 
550
union pipe_color_union
 
551
{
 
552
   float f[4];
 
553
   int i[4];
 
554
   unsigned int ui[4];
 
555
};
 
556
 
511
557
#ifdef __cplusplus
512
558
}
513
559
#endif