~ubuntu-branches/ubuntu/natty/mesa/natty-proposed

« back to all changes in this revision

Viewing changes to src/gallium/auxiliary/draw/draw_pipe_unfilled.c

  • Committer: Bazaar Package Importer
  • Author(s): Robert Hooker, Robert Hooker, Christopher James Halse Rogers
  • Date: 2010-09-14 08:55:40 UTC
  • mfrom: (1.2.28 upstream)
  • Revision ID: james.westby@ubuntu.com-20100914085540-m4fpl0hdjlfd4jgz
Tags: 7.9~git20100909-0ubuntu1
[ Robert Hooker ]
* New upstream git snapshot up to commit 94118fe2d4b1e5 (LP: #631413)
* New features include ATI HD5xxx series support in r600, and a vastly
  improved glsl compiler.
* Remove pre-generated .pc's, use the ones generated at build time
  instead.
* Remove all references to mesa-utils now that its no longer shipped
  with the mesa source.
* Disable the experimental ARB_fragment_shader option by default on
  i915, it exposes incomplete functionality that breaks KDE compositing
  among other things. It can be enabled via driconf still. (LP: #628930).

[ Christopher James Halse Rogers ]
* debian/patches/04_osmesa_version.diff:
  - Refresh for new upstream
* Bugs fixed in this release:
  - Fixes severe rendering corruption in Unity on radeon (LP: #628727,
    LP: #596292, LP: #599741, LP: #630315, LP: #613694, LP: #599741).
  - Also fixes rendering in gnome-shell (LP: #578619).
  - Flickering in OpenGL apps on radeon (LP: #626943, LP: #610541).
  - Provides preliminary support for new intel chips (LP: #601052).
* debian/rules:
  - Update configure flags to match upstream reshuffling.
  - Explicitly remove gallium DRI drivers that we don't want to ship.
* Update debian/gbp.conf for this Maverick-specific packaging
* libegl1-mesa-dri-x11,kms: There are no longer separate kms or x11 drivers
  for EGL, libegl1-mesa-drivers now contains a single driver that provides
  both backends.

Show diffs side-by-side

added added

removed removed

Lines of Context:
105
105
}
106
106
 
107
107
 
 
108
/** For debugging */
 
109
static void
 
110
print_header_flags(unsigned flags)
 
111
{
 
112
   debug_printf("header->flags = ");
 
113
   if (flags & DRAW_PIPE_RESET_STIPPLE)
 
114
      debug_printf("RESET_STIPPLE ");
 
115
   if (flags & DRAW_PIPE_EDGE_FLAG_0)
 
116
      debug_printf("EDGE_FLAG_0 ");
 
117
   if (flags & DRAW_PIPE_EDGE_FLAG_1)
 
118
      debug_printf("EDGE_FLAG_1 ");
 
119
   if (flags & DRAW_PIPE_EDGE_FLAG_2)
 
120
      debug_printf("EDGE_FLAG_2 ");
 
121
   debug_printf("\n");
 
122
}
 
123
 
 
124
 
108
125
/* Unfilled tri:  
109
126
 *
110
127
 * Note edgeflags in the vertex struct is not sufficient as we will
117
134
                          struct prim_header *header )
118
135
{
119
136
   struct unfilled_stage *unfilled = unfilled_stage(stage);
120
 
   unsigned mode = unfilled->mode[header->det >= 0.0];
 
137
   unsigned cw = header->det >= 0.0;
 
138
   unsigned mode = unfilled->mode[cw];
121
139
  
 
140
   if (0)
 
141
      print_header_flags(header->flags);
 
142
 
122
143
   switch (mode) {
123
144
   case PIPE_POLYGON_MODE_FILL:
124
145
      stage->next->tri( stage->next, header );
139
160
                                struct prim_header *header )
140
161
{
141
162
   struct unfilled_stage *unfilled = unfilled_stage(stage);
 
163
   const struct pipe_rasterizer_state *rast = stage->draw->rasterizer;
142
164
 
143
 
   unfilled->mode[0] = stage->draw->rasterizer->fill_ccw; /* front */
144
 
   unfilled->mode[1] = stage->draw->rasterizer->fill_cw;  /* back */
 
165
   unfilled->mode[0] = rast->front_ccw ? rast->fill_front : rast->fill_back;
 
166
   unfilled->mode[1] = rast->front_ccw ? rast->fill_back : rast->fill_front;
145
167
 
146
168
   stage->tri = unfilled_tri;
147
169
   stage->tri( stage, header );
180
202
   if (unfilled == NULL)
181
203
      goto fail;
182
204
 
183
 
   if (!draw_alloc_temp_verts( &unfilled->stage, 0 ))
184
 
      goto fail;
185
 
 
186
205
   unfilled->stage.draw = draw;
187
206
   unfilled->stage.name = "unfilled";
188
207
   unfilled->stage.next = NULL;
194
213
   unfilled->stage.reset_stipple_counter = unfilled_reset_stipple_counter;
195
214
   unfilled->stage.destroy = unfilled_destroy;
196
215
 
 
216
   if (!draw_alloc_temp_verts( &unfilled->stage, 0 ))
 
217
      goto fail;
 
218
 
197
219
   return &unfilled->stage;
198
220
 
199
221
 fail: