<div class="gmail_quote">On Tue, Mar 8, 2011 at 5:11 PM, José Fonseca <span dir="ltr">&lt;<a href="mailto:jfonseca@vmware.com">jfonseca@vmware.com</a>&gt;</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>
&gt; On Sun, 2011-03-06 at 18:42 +0100, Marek Olšák wrote:<br>
</div><div class="im">&gt; &gt; 2) is_resource_referenced<br>
&gt; &gt;<br>
&gt; &gt; Now that the transfer functions are in pipe_context, is this hook<br>
&gt; &gt; really<br>
&gt; &gt; necessary?<br>
&gt;<br>
&gt; Good question.  I&#39;d like to see those functions go away as they are<br>
&gt; round-trips baked into the interface which is a pain if you try and<br>
&gt; remote this stuff.<br>
&gt;<br>
&gt; I guess you&#39;d still need to catch the write-after-read case within a<br>
&gt; single context and turn that into a flush.<br>
&gt;<br>
&gt; I think others (Jose in particular) should comment, but I suspect that<br>
&gt; individual drivers could now do this internally &amp; not need to expose the<br>
&gt; interface in gallium.<br>
<br>
</div>That&#39;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>
&gt; &gt; 5) Block compression formats naming<br>
&gt; &gt;<br>
&gt; &gt; Would anyone object to cleaning up the names of compression formats?<br>
&gt; &gt;<br>
&gt; &gt; There are (or will be) these formats: DXTn, RGTCn, LATCn, BPTCx. They<br>
&gt; &gt; have<br>
&gt; &gt; many things in common:<br>
&gt; &gt; - All of them have 4x4 pixel blocks.<br>
&gt; &gt; - One block is either 64 bits of 128 bits large.<br>
&gt; &gt; - RGTC and LATC are equal except for swizzling.<br>
&gt; &gt; - RGTC and LATC are based on DXTn encoding.<br>
&gt; &gt;<br>
&gt; &gt; I propose to copy the more consistent D3D11 naming and use the form<br>
&gt; &gt; PIPE_FORMAT_encoding_swizzle_type for all of them:<br>
&gt; &gt;<br>
&gt; &gt; PIPE_FORMAT_BC1_RGB_UNORM // DXT1 = BC1<br>
&gt; &gt; PIPE_FORMAT_BC1_RGB_SRGB<br>
&gt; &gt; PIPE_FORMAT_BC1_RGBA_UNORM<br>
&gt; &gt; PIPE_FORMAT_BC1_RGBA_SRGB<br>
&gt; &gt; PIPE_FORMAT_BC2_RGBA_UNORM // DXT3 = BC2<br>
&gt; &gt; PIPE_FORMAT_BC2_RGBA_SRGB<br>
&gt; &gt; PIPE_FORMAT_BC3_RGBA_UNORM // DXT5 = BC3<br>
&gt; &gt; PIPE_FORMAT_BC3_RGBA_SRGB<br>
&gt; &gt; PIPE_FORMAT_BC4_R_UNORM // RGTC1 = BC4<br>
&gt; &gt; PIPE_FORMAT_BC4_R_SNORM<br>
&gt; &gt; PIPE_FORMAT_BC4_L_UNORM // LATC1 = BC4<br>
&gt; &gt; PIPE_FORMAT_BC4_L_SNORM<br>
&gt; &gt; PIPE_FORMAT_BC5_RG_UNORM // RGTC2 = D3D/3DC = BC5<br>
&gt; &gt; PIPE_FORMAT_BC5_RG_SNORM<br>
&gt; &gt; PIPE_FORMAT_BC5_LA_UNORM // LATC2 = GL/3DC = BC5<br>
&gt; &gt; PIPE_FORMAT_BC5_LA_SNORM<br>
&gt; &gt; PIPE_FORMAT_BC6_RGB_FLOAT // BPTC (BC6H)<br>
&gt; &gt; PIPE_FORMAT_BC6_RGB_UFLOAT<br>
&gt; &gt; PIPE_FORMAT_BC7_RGBA_UNORM // BPTC<br>
&gt; &gt; PIPE_FORMAT_BC7_RGBA_SRGB<br>
&gt; &gt;<br>
&gt; &gt; The layout for all of them would be UTIL_FORMAT_LAYOUT_BC.<br>
&gt; &gt;<br>
&gt; &gt; UFLOAT is a float without the sign bit. I guess UFLOAT should be used<br>
&gt; &gt; for<br>
&gt; &gt; R11G11B10_FLOAT and R9G9B9E5_FLOAT too.<br>
&gt;<br>
&gt; Sounds good again, though this is more Jose&#39;s domain than mine.<br>
<br>
</div></div>Although I&#39;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&#39;<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>