On Tue, Jan 31, 2012 at 7:05 PM, Brian Paul <brian.e.p...@gmail.com> wrote:
> On Tue, Jan 31, 2012 at 4:47 PM, Ian Romanick <i...@freedesktop.org> wrote:
>> From: Ian Romanick <ian.d.roman...@intel.com>
>>
>> This is a partial revert of f9874fe.  It turns out that the types
>> don't always match.  Specifically, this can happen when doing
>> glCopyPixels from a float FBO to a RGBA8 FBO.
>>
>> Signed-off-by: Ian Romanick <ian.d.roman...@intel.com>
>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45429
>> ---
>>  src/mesa/swrast/s_span.c |   19 +++++++++++++++----
>>  1 files changed, 15 insertions(+), 4 deletions(-)
>>
>> diff --git a/src/mesa/swrast/s_span.c b/src/mesa/swrast/s_span.c
>> index 28f2f3d..422d86c 100644
>> --- a/src/mesa/swrast/s_span.c
>> +++ b/src/mesa/swrast/s_span.c
>> @@ -1321,12 +1321,23 @@ _swrast_write_rgba_span( struct gl_context *ctx, 
>> SWspan *span)
>>          if (rb) {
>>             GLchan rgbaSave[MAX_WIDTH][4];
>>
>> -            if (span->array->ChanType == GL_UNSIGNED_BYTE) {
>> -               span->array->rgba = span->array->rgba8;
>> +           GLenum datatype;
>> +           GLuint comps;
>> +
>> +           _mesa_format_to_type_and_comps(rb->Format, &datatype, &comps);
>> +
>> +            /* set span->array->rgba to colors for render buffer's datatype 
>> */
>> +            if (datatype != span->array->ChanType) {
>> +               convert_color_type(span, datatype, 0);
>>             }
>>             else {
>> -               span->array->rgba = (void *)
>> -                  span->array->attribs[FRAG_ATTRIB_COL0];
>> +               if (span->array->ChanType == GL_UNSIGNED_BYTE) {
>> +                  span->array->rgba = span->array->rgba8;
>> +               }
>> +               else {
>> +                  span->array->rgba = (void *)
>> +                     span->array->attribs[FRAG_ATTRIB_COL0];
>> +               }
>>             }
>>
>>             if (!multiFragOutputs && numBuffers > 1) {
>
> LGTM.  Reviewed-by: Brian Paul <bri...@vmware.com>

Candidate for 8.0, right?

-Brian
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to