[Mesa-dev] [PATCH 09/11] intel: Add support for blitting 6 byte-per-pixel formats.

Ian Romanick idr at freedesktop.org
Wed Apr 17 15:07:50 PDT 2013


On 04/17/2013 02:53 PM, Kenneth Graunke wrote:
> On 04/16/2013 05:21 PM, Eric Anholt wrote:
>> The next commit introduces what is apparently our first one, which
>> tripped
>> over this in glReadPixels.
>> ---
>>   src/mesa/drivers/dri/intel/intel_blit.c |   21 ++++++++++++++-------
>>   1 file changed, 14 insertions(+), 7 deletions(-)
>
> Commit message here should be "16 byte-per-pixel formats"...

You sure?  I'm pretty sure that cpp % 4 != 2 for 16 byte-per-pixel 
formats. :)

>> diff --git a/src/mesa/drivers/dri/intel/intel_blit.c
>> b/src/mesa/drivers/dri/intel/intel_blit.c
>> index 1f3fad5..cc2fa70 100644
>> --- a/src/mesa/drivers/dri/intel/intel_blit.c
>> +++ b/src/mesa/drivers/dri/intel/intel_blit.c
>> @@ -150,15 +150,22 @@ intelEmitCopyBlit(struct intel_context *intel,
>>      if (src_pitch % 4 != 0 || dst_pitch % 4 != 0)
>>         return false;
>>
>> -   /* For big formats (such as floating point), do the copy using
>> 32bpp and
>> -    * multiply the coordinates.
>> +   /* For big formats (such as floating point), do the copy using 16
>> or 32bpp
>> +    * and multiply the coordinates.
>>       */
>>      if (cpp > 4) {
>> -      assert(cpp % 4 == 0);
>> -      dst_x *= cpp / 4;
>> -      dst_x2 *= cpp / 4;
>> -      src_x *= cpp / 4;
>> -      cpp = 4;
>> +      if (cpp % 4 == 2) {
>> +         dst_x *= cpp / 2;
>> +         dst_x2 *= cpp / 2;
>> +         src_x *= cpp / 2;
>> +         cpp = 2;
>> +      } else {
>> +         assert(cpp % 4 == 0);
>> +         dst_x *= cpp / 4;
>> +         dst_x2 *= cpp / 4;
>> +         src_x *= cpp / 4;
>> +         cpp = 4;
>> +      }
>>      }
>>
>>      BR13 = br13_for_cpp(cpp) | translate_raster_op(logic_op) << 16;
>>
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>



More information about the mesa-dev mailing list