On 06.09.2010 15:57, José Fonseca wrote:
> I'd like to know if there's any objection to change the
> resource_copy_region semantics to allow copies between different yet
> compatible formats, where the definition of compatible formats is:
> 
>   "formats for which copying the bytes from the source resource
> unmodified to the destination resource will achieve the same effect of a
> textured quad blitter"
> 
> There is an helper function util_is_format_compatible() to help making
> this decision, and these are the non-trivial conversions that this
> function currently recognizes, (which was produced by
> u_format_compatible_test.c):
> 
>   b8g8r8a8_unorm -> b8g8r8x8_unorm
>   a8r8g8b8_unorm -> x8r8g8b8_unorm
>   b5g5r5a1_unorm -> b5g5r5x1_unorm
>   b4g4r4a4_unorm -> b4g4r4x4_unorm
>   l8_unorm -> r8_unorm
>   i8_unorm -> l8_unorm
>   i8_unorm -> a8_unorm
>   i8_unorm -> r8_unorm
>   l16_unorm -> r16_unorm
>   z24_unorm_s8_uscaled -> z24x8_unorm
>   s8_uscaled_z24_unorm -> x8z24_unorm
>   r8g8b8a8_unorm -> r8g8b8x8_unorm
>   a8b8g8r8_srgb -> x8b8g8r8_srgb
>   b8g8r8a8_srgb -> b8g8r8x8_srgb
>   a8r8g8b8_srgb -> x8r8g8b8_srgb
>   a8b8g8r8_unorm -> x8b8g8r8_unorm
>   r10g10b10a2_uscaled -> r10g10b10x2_uscaled
>   r10sg10sb10sa2u_norm -> r10g10b10x2_snorm
> 
> Note that format compatibility is not commutative.
> 
> For software drivers this means that memcpy/util_copy_rect() will
> achieve the correct result.
> 
> For hardware drivers this means that a VRAM->VRAM 2D blit engine will
> also achieve the correct result.
> 
> So I'd expect no implementation change of resource_copy_region() for any
> driver AFAICT. But I'd like to be sure.
> 
> Jose

José,

this looks good to me. Note that the analogous function in d3d10,
ResourceCopyRegion, only requires formats to be in the same typeless
group (hence same number of bits for all components), which is certainly
a broader set of compatible formats to what util_is_format_compatible()
  is outputting. As far as I can tell, no conversion is happening at all
in d3d10, this is just like memcpy. I think we might want to support
that in the future as well, but for now extending this to the formats
you listed certainly sounds ok.

Roland

------------------------------------------------------------------------------
This SF.net Dev2Dev email is sponsored by:

Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to