From mboxrd@z Thu Jan 1 00:00:00 1970 From: bugzilla-daemon@freedesktop.org Subject: [Bug 37142] Too much vertex buffers uploads Date: Thu, 12 May 2011 10:55:30 -0700 (PDT) Message-ID: <20110512175530.3341E13004E@annarchy.freedesktop.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from annarchy.freedesktop.org (annarchy.freedesktop.org [131.252.210.176]) by gabe.freedesktop.org (Postfix) with ESMTP id 429CA9E7BB for ; Thu, 12 May 2011 10:55:30 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org https://bugs.freedesktop.org/show_bug.cgi?id=37142 --- Comment #1 from Ian Romanick 2011-05-12 10:55:30 PDT --- (In reply to comment #0) > Created an attachment (id=46638) --> (https://bugs.freedesktop.org/attachment.cgi?id=46638) > openarena + verbose vertex buffer upload logs > > Test case : openarena + anholt benchmark + r600g > > I added several fprintf debug trace to mesa code around Vertex buffer > uploading. > Basically, openarena render things using : > glVertexPointeer() > glLockArraysEXT() > several glDrawElements() > glUnlockArraysEXT() > > It seems that each call to glDrawElements implies a reupload of the vertex > buffers, even if it has not changed (as glLock/Unlock calls tell, at least for > part of the buffer). EXT_compiled_vertex_array is dead. It has been dead for almost 10 years. No new applications should use it, and old applications that use it should be fast enough on modern hardware. I really don't think we should add any code to Mesa to make this case fast. We'd be better off submitting patches to openarena to use VBOs instead. > Another related bug (it seems) is in : cso_set_vertex_buffers() which does a > test before calling : util_copy_vertex_buffers and pipe->set_vertex_buffers > This test always return true, thus the 2 above functions are always called. The > test is always true because it memcmp all pipe_vertex_buffer, which contains a > 'buffer' pointer, which changes at each frame (see st_draw.c:349). > > I'm trying to build a patch which fix the cso_set_vertex_buffers problem and > then, taking advantage of glLock/Unlock calls to fix the upload issue. > > What do you think ? -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug.