<p>This. I thought that, to trigger uploads, we just had to change the domain on the buffer.</p>
<p>Sending from a mobile, pardon the brevity. ~ C.</p>
<p>On Nov 11, 2010 3:00 PM, &quot;Jerome Glisse&quot; &lt;<a href="mailto:j.glisse@gmail.com">j.glisse@gmail.com</a>&gt; wrote:<br type="attribution">&gt; 2010/11/11 Keith Whitwell &lt;<a href="mailto:keithw@vmware.com">keithw@vmware.com</a>&gt;:<br>
&gt;&gt; There is still more to do there.  Currently r600g treats buffer and texture uploads separately, and I&#39;ve only attempted to improve texture uploads.  Buffer is just as important however.<br>&gt;&gt;<br>&gt;&gt; The change needed is likely to be one of two:<br>
&gt;&gt; a) Allow newly created vertex buffers to be in the GTT domain, where they can be mapped cached.<br>&gt;&gt; b) Provide a staging resource upload path (with the staging buffer in GTT domain).<br>&gt;&gt;<br>&gt;&gt; The latter will catch more cases and doesn&#39;t suffer from waits for the engine to go idle when accessing an in-use buffer.  The former is probably fastest for the cases where it works.<br>
&gt;&gt;<br>&gt;&gt; Right now staged texture uploads use a 3d blit to copy from the staging resource to the final destination.  That probably won&#39;t work (directly at least) for buffer uploads as buffer dimensions (eg 64k by 1) mean they usually can&#39;t be bound as render targets.  So we need to jump through some hoops to get a hardware upload path in the absence of a DMA engine or 1d-blit.<br>
&gt;&gt;<br>&gt;&gt; Keith<br>&gt; <br>&gt; I am not sure on how gallium texture upload was ever supposed to be or<br>&gt; done, but from memory management point of view the idea i had was to<br>&gt; create all bo in GTT and let migrate them to VRAM once they are use,<br>
&gt; eliminating any need for staging buffer. So it would be allocate bo,<br>&gt; memcpy to bo the content of the texture, use bo and set it as vram bo<br>&gt; so kernel migrate it to vram, that way you take advantage of kernel bo<br>
&gt; move which should be faster than any blit helped move.<br>&gt; <br>&gt; Anyway this was my initial thinking when doing the code.<br>&gt; <br>&gt; Cheers,<br>&gt; Jerome Glisse<br>&gt; _______________________________________________<br>
&gt; mesa-dev mailing list<br>&gt; <a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>&gt; <a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</p>