From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.24) id 1A8Dmd-0006VD-GL for qemu-devel@nongnu.org; Sat, 11 Oct 2003 03:03:23 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.24) id 1A8Dlz-00066P-Bt for qemu-devel@nongnu.org; Sat, 11 Oct 2003 03:03:14 -0400 Received: from [62.4.22.179] (helo=mail.bbrox.com) by monty-python.gnu.org with esmtp (Exim 4.24) id 1A8Dly-00061K-6d for qemu-devel@nongnu.org; Sat, 11 Oct 2003 03:02:42 -0400 Date: Sat, 11 Oct 2003 09:02:35 +0200 From: Lionel Ulmer Subject: Re: [Qemu-devel] OpenGL idea... Message-ID: <20031011090235.A31919@bbland> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: ; from cpage@silcom.com on Fri, Oct 10, 2003 at 11:43:05PM -0700 Reply-To: qemu-devel@nongnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org > Would it be possible to create a thunk "library" that is linked to > the application in place of the x86 library? If so then one could be made > to handle the OpenGL calls and pass them onto the native DLL. This would > in theory enable accelerated OpenGL... unless there's something else I'm > missing... This could work (ie to basically have most GL calls be like syscalls). The problems are : 1) you need to do parameter conversions for all API calls. Which are pretty easy for most of the core APIs, but will be a pain for textures, vertex buffers. 2) OpenGL, for thread safety, relies on the way the underlying system does threading. For example, I know that the NVIDIA drivers, when NPTL is built in, use some special storage in the TLS space for their datas. Now, if QEMU emulates 'target' threading all in the same 'native' thread (ie you do not have one target thread == one native thread), this won't work as all GL calls will be on the same thread (note that multi-threaded GL apps are pretty rare out there :-) ). 3) if X is emulated and GL is native, how are you going to get all GLX calls working ? These are the problems I see... Maybe they have easy solution though, I did not think too much about this :-) Lionel -- Lionel Ulmer - http://www.bbrox.org/