<div class="gmail_quote">On Mon, Jun 14, 2010 at 9:58 PM, Corbin Simpson <span dir="ltr">&lt;<a href="mailto:mostawesomedude@gmail.com" target="_blank">mostawesomedude@gmail.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><div></div><div>On Mon, Jun 14, 2010 at 4:09 AM, Roland Scheidegger &lt;<a href="mailto:sroland@vmware.com" target="_blank">sroland@vmware.com</a>&gt; wrote:<br>
&gt; I&#39;m planning to merge this branch soon, though I&#39;ll fix some broken things<br>
&gt; first. In any case, the probably most fundamental change is that<br>
&gt; get_tex_surface not only got renamed (to create_surface) but also moved to<br>
&gt; context. In short, pipe_surface is not (or no longer as there were free<br>
&gt; standing surfaces once upon a time in gallium) some kind of &quot;2d surface&quot;<br>
&gt; which should be used in (non-rendering) state trackers to move any kind of<br>
&gt; images around. pipe_surface is meant to be used to attach resources to<br>
&gt; depthstencil and color render target outputs (similar to DX10 DepthStencil<br>
&gt; and RenderTarget Views).<br>
&gt; One thing though I&#39;m not quite sure is if for array textures, the same field<br>
&gt; should be used in the resource as for storing depth of 3d textures (the<br>
&gt; depth0 field). Using the same &quot;layer&quot; field both for faces, array index and<br>
&gt; 3d depth seems to make a lot of sense for transfers, the sampler views and<br>
&gt; in pipe_surface, but I&#39;m not sure the same field should be used in the<br>
&gt; resource itself. I&#39;ve actually converted some code to do that (but not quite<br>
&gt; all for instance the mesa state tracker is broken there).<br>
&gt; The reason for using the same field would be that it&#39;s mutually exclusive<br>
&gt; anyway (unless someone introduces 3d array textures...), hence not really 2<br>
&gt; fields are necessary. But OTOH depth behaves differently to arraysize (and<br>
&gt; cube faces) because it doesn&#39;t get minified for smaller mips. So if someone<br>
&gt; has convincing reasons what should be preferred I&#39;ll follow it :-).<br>
&gt; One this is for sure though we need some way to store array size, and cube<br>
&gt; maps will follow that pattern since for resource handling they are pretty<br>
&gt; much the same as a 2d array texture with array size of 6.<br>
<br>
</div></div>This all seems fine. Drivers for pre-texture-array chipsets can handle<br>
all this by forcing off trilinear filtering, right?<br></blockquote><div><br>No, they can&#39;t. The 3rd dimension (depth) is not minified in mipmaps, so the first and last mipmap may be e.g. 128x128x64 and 1x1x64, respectively. I don&#39;t think DX9-level GPUs can do that.<br>

<br>-Marek<br>
</div></div>