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

« back to all changes in this revision

Viewing changes to src/mesa/drivers/dri/i965/gen6_gs_state.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:
44
44
   OUT_BATCH(0);
45
45
   ADVANCE_BATCH();
46
46
 
47
 
   // GS should never be used on Gen6.  Disable it.
48
 
   assert(!brw->gs.prog_active);
49
 
   BEGIN_BATCH(7);
50
 
   OUT_BATCH(_3DSTATE_GS << 16 | (7 - 2));
51
 
   OUT_BATCH(0); /* prog_bo */
52
 
   OUT_BATCH((0 << GEN6_GS_SAMPLER_COUNT_SHIFT) |
53
 
             (0 << GEN6_GS_BINDING_TABLE_ENTRY_COUNT_SHIFT));
54
 
   OUT_BATCH(0); /* scratch space base offset */
55
 
   OUT_BATCH((1 << GEN6_GS_DISPATCH_START_GRF_SHIFT) |
56
 
             (0 << GEN6_GS_URB_READ_LENGTH_SHIFT) |
57
 
             (0 << GEN6_GS_URB_ENTRY_READ_OFFSET_SHIFT));
58
 
   OUT_BATCH((0 << GEN6_GS_MAX_THREADS_SHIFT) |
59
 
             GEN6_GS_STATISTICS_ENABLE |
60
 
             GEN6_GS_RENDERING_ENABLE);
61
 
   OUT_BATCH(0);
62
 
   ADVANCE_BATCH();
 
47
   if (brw->gs.prog_active) {
 
48
      BEGIN_BATCH(7);
 
49
      OUT_BATCH(_3DSTATE_GS << 16 | (7 - 2));
 
50
      OUT_BATCH(brw->gs.prog_offset);
 
51
      OUT_BATCH(GEN6_GS_SPF_MODE | GEN6_GS_VECTOR_MASK_ENABLE);
 
52
      OUT_BATCH(0); /* no scratch space */
 
53
      OUT_BATCH((2 << GEN6_GS_DISPATCH_START_GRF_SHIFT) |
 
54
                (brw->gs.prog_data->urb_read_length << GEN6_GS_URB_READ_LENGTH_SHIFT));
 
55
      OUT_BATCH(((brw->max_gs_threads - 1) << GEN6_GS_MAX_THREADS_SHIFT) |
 
56
                GEN6_GS_STATISTICS_ENABLE |
 
57
                GEN6_GS_SO_STATISTICS_ENABLE |
 
58
                GEN6_GS_RENDERING_ENABLE);
 
59
      OUT_BATCH(GEN6_GS_SVBI_PAYLOAD_ENABLE |
 
60
                GEN6_GS_SVBI_POSTINCREMENT_ENABLE |
 
61
                (brw->gs.prog_data->svbi_postincrement_value <<
 
62
                 GEN6_GS_SVBI_POSTINCREMENT_VALUE_SHIFT) |
 
63
                GEN6_GS_ENABLE);
 
64
      ADVANCE_BATCH();
 
65
   } else {
 
66
      BEGIN_BATCH(7);
 
67
      OUT_BATCH(_3DSTATE_GS << 16 | (7 - 2));
 
68
      OUT_BATCH(0); /* prog_bo */
 
69
      OUT_BATCH((0 << GEN6_GS_SAMPLER_COUNT_SHIFT) |
 
70
                (0 << GEN6_GS_BINDING_TABLE_ENTRY_COUNT_SHIFT));
 
71
      OUT_BATCH(0); /* scratch space base offset */
 
72
      OUT_BATCH((1 << GEN6_GS_DISPATCH_START_GRF_SHIFT) |
 
73
                (0 << GEN6_GS_URB_READ_LENGTH_SHIFT) |
 
74
                (0 << GEN6_GS_URB_ENTRY_READ_OFFSET_SHIFT));
 
75
      OUT_BATCH((0 << GEN6_GS_MAX_THREADS_SHIFT) |
 
76
                GEN6_GS_STATISTICS_ENABLE |
 
77
                GEN6_GS_RENDERING_ENABLE);
 
78
      OUT_BATCH(0);
 
79
      ADVANCE_BATCH();
 
80
   }
63
81
}
64
82
 
65
83
const struct brw_tracked_state gen6_gs_state = {
66
84
   .dirty = {
67
85
      .mesa  = _NEW_TRANSFORM,
68
 
      .brw   = (BRW_NEW_URB_FENCE |
69
 
                BRW_NEW_CONTEXT),
 
86
      .brw   = BRW_NEW_CONTEXT,
70
87
      .cache = CACHE_NEW_GS_PROG
71
88
   },
72
89
   .emit = upload_gs_state,