<div class="gmail_quote">On Tue, Mar 8, 2011 at 5:11 PM, José Fonseca <span dir="ltr"><<a href="mailto:jfonseca@vmware.com">jfonseca@vmware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">On Mon, 2011-03-07 at 02:38 -0800, Keith Whitwell wrote:<br>
> On Sun, 2011-03-06 at 18:42 +0100, Marek Olšák wrote:<br>
</div><div class="im">> > 2) is_resource_referenced<br>
> ><br>
> > Now that the transfer functions are in pipe_context, is this hook<br>
> > really<br>
> > necessary?<br>
><br>
> Good question. I'd like to see those functions go away as they are<br>
> round-trips baked into the interface which is a pain if you try and<br>
> remote this stuff.<br>
><br>
> I guess you'd still need to catch the write-after-read case within a<br>
> single context and turn that into a flush.<br>
><br>
> I think others (Jose in particular) should comment, but I suspect that<br>
> individual drivers could now do this internally & not need to expose the<br>
> interface in gallium.<br>
<br>
</div>That's correct. State trackers no longer need this. This interface can<br>
be removed, and drivers that need it internally should be updated to use<br>
internal private interfaces.<br>
<div><div></div><div class="h5"><br>
> > 5) Block compression formats naming<br>
> ><br>
> > Would anyone object to cleaning up the names of compression formats?<br>
> ><br>
> > There are (or will be) these formats: DXTn, RGTCn, LATCn, BPTCx. They<br>
> > have<br>
> > many things in common:<br>
> > - All of them have 4x4 pixel blocks.<br>
> > - One block is either 64 bits of 128 bits large.<br>
> > - RGTC and LATC are equal except for swizzling.<br>
> > - RGTC and LATC are based on DXTn encoding.<br>
> ><br>
> > I propose to copy the more consistent D3D11 naming and use the form<br>
> > PIPE_FORMAT_encoding_swizzle_type for all of them:<br>
> ><br>
> > PIPE_FORMAT_BC1_RGB_UNORM // DXT1 = BC1<br>
> > PIPE_FORMAT_BC1_RGB_SRGB<br>
> > PIPE_FORMAT_BC1_RGBA_UNORM<br>
> > PIPE_FORMAT_BC1_RGBA_SRGB<br>
> > PIPE_FORMAT_BC2_RGBA_UNORM // DXT3 = BC2<br>
> > PIPE_FORMAT_BC2_RGBA_SRGB<br>
> > PIPE_FORMAT_BC3_RGBA_UNORM // DXT5 = BC3<br>
> > PIPE_FORMAT_BC3_RGBA_SRGB<br>
> > PIPE_FORMAT_BC4_R_UNORM // RGTC1 = BC4<br>
> > PIPE_FORMAT_BC4_R_SNORM<br>
> > PIPE_FORMAT_BC4_L_UNORM // LATC1 = BC4<br>
> > PIPE_FORMAT_BC4_L_SNORM<br>
> > PIPE_FORMAT_BC5_RG_UNORM // RGTC2 = D3D/3DC = BC5<br>
> > PIPE_FORMAT_BC5_RG_SNORM<br>
> > PIPE_FORMAT_BC5_LA_UNORM // LATC2 = GL/3DC = BC5<br>
> > PIPE_FORMAT_BC5_LA_SNORM<br>
> > PIPE_FORMAT_BC6_RGB_FLOAT // BPTC (BC6H)<br>
> > PIPE_FORMAT_BC6_RGB_UFLOAT<br>
> > PIPE_FORMAT_BC7_RGBA_UNORM // BPTC<br>
> > PIPE_FORMAT_BC7_RGBA_SRGB<br>
> ><br>
> > The layout for all of them would be UTIL_FORMAT_LAYOUT_BC.<br>
> ><br>
> > UFLOAT is a float without the sign bit. I guess UFLOAT should be used<br>
> > for<br>
> > R11G11B10_FLOAT and R9G9B9E5_FLOAT too.<br>
><br>
> Sounds good again, though this is more Jose's domain than mine.<br>
<br>
</div></div>Although I'm all for consistency, I really see no point in a format name<br>
which is based on an arbitrary number as used in DX11, instead of a<br>
symbolic name with meaning as we have currently<br>
<br>
Imagine we want to expose a different compressed format, e.g., Khronos'<br>
ETC format. Which BC number shall we give? What will happen when<br>
Microsoft decides to assign a different number?<br>
<br>
IMO, renaming compressed formats to PIPE_FORMAT_BC* is pure waste of<br>
time.<br></blockquote><div><br></div></div>Yeah, I later realized there is no benefit in doing this.<br><br>Marek<br>