OH, I see. I&#39;ll try that out. Thanks. <br><br>Jamie<br><br><div class="gmail_quote">On Thu, Jun 3, 2010 at 2:22 AM, Chia-I Wu <span dir="ltr">&lt;<a href="mailto:olvaffe@gmail.com">olvaffe@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;">On Thu, Jun 3, 2010 at 12:58 AM, Jamie Amendolagine<br>
<div class="im">&lt;<a href="mailto:jamie.amendolagine@gmail.com">jamie.amendolagine@gmail.com</a>&gt; wrote:<br>
</div><div class="im">&gt; I&#39;m not too familiar with the code, but it does look like the qemu SVGA<br>
&gt; driver is lacking the 3D functionality.<br>
&gt; Should this work in software mode?<br>
</div>Yes, but it requires an fbdev backend.  That is,<br>
<br>
  * add fbdev sw_winsys to src/gallium/winsys/sw/<br>
  * add fbdev native_display to src/gallium/state_trackers/egl/<br>
<br>
The former is responsible for copying buffers to the fbdev.  The latter may<br>
export the current var info in the form of an EGLModeMESA and use<br>
resource_surface for buffer management.<br>
<br>
You are also gonna need to define the native display, window, and pixmap types<br>
for fbdev.  The window and pixmap types may be arbitrary as they are not used.<br>
The natual choice for the native display type may be an fd (int) or the device<br>
path (char *).<br>
<div><div></div><div class="h5">&gt; I&#39;m trying this:<br>
&gt; export EGL_DRIVER=/usr/local/lib/egl/egl_kms_swrast.so<br>
&gt; cd progs/egl<br>
&gt; ./eglinfo<br>
&gt; eglinfo: eglInitialize failed<br>
&gt;<br>
&gt; I seem to get the same with the other egl programs. Maybe I&#39;ll try the patch<br>
&gt; from here: <a href="http://airlied.livejournal.com/69291.html" target="_blank">http://airlied.livejournal.com/69291.html</a> ...<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; The following is the config that I used:<br>
&gt; ----------------------------------------------------------<br>
&gt; # -*-makefile-*-<br>
&gt; # Configuration for linux-dri: Linux DRI hardware drivers for XFree86 &amp;<br>
&gt; others<br>
&gt;<br>
&gt; include $(TOP)/configs/default<br>
&gt;<br>
&gt; CONFIG_NAME = linux-dri<br>
&gt;<br>
&gt; # Compiler and flags<br>
&gt; CC = i686-linux-uclibc-gcc<br>
&gt; CXX = i686-linux-uclibc-g++<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; #MKDEP = /usr/X11R6/bin/makedepend<br>
&gt; #MKDEP = gcc -M<br>
&gt; #MKDEP_OPTIONS = -fdepend<br>
&gt; -I/root/oryza/neworyzans/output/staging/usr/include<br>
&gt; -I/root/oryza/neworyzans/output/staging/usr/includeX11/extensions/<br>
&gt; MKDEP_OPTIONS = -fdepend $(SNAP_MKDEP_OPTIONS)<br>
&gt;<br>
&gt; OPT_FLAGS  = -O2 -g<br>
&gt; PIC_FLAGS  = -fPIC<br>
&gt;<br>
&gt; # Add &#39;-DGLX_USE_TLS&#39; to ARCH_FLAGS to enable TLS support.<br>
&gt; ARCH_FLAGS ?=<br>
&gt;<br>
&gt; DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \<br>
&gt;     -D_BSD_SOURCE -D_GNU_SOURCE \<br>
&gt;     -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER \<br>
&gt;     -DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING \<br>
&gt;     -DHAVE_ALIAS -DHAVE_POSIX_MEMALIGN<br>
&gt;<br>
&gt; X11_INCLUDES = -I/usr/X11R6/include<br>
&gt;<br>
&gt; CFLAGS = -Wall -Wmissing-prototypes -std=c99 -ffast-math \<br>
&gt;     $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) $(ASM_FLAGS)<br>
&gt;<br>
&gt; CXXFLAGS = -Wall $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)<br>
&gt;<br>
&gt; GLUT_CFLAGS = -fexceptions<br>
&gt;<br>
&gt; # Work around aliasing bugs - developers should comment this out<br>
&gt; CFLAGS += -fno-strict-aliasing<br>
&gt; CXXFLAGS += -fno-strict-aliasing<br>
&gt;<br>
&gt; MESA_ASM_SOURCES =<br>
&gt;<br>
&gt; # Library/program dependencies<br>
&gt; EXTRA_LIB_PATH=$(SNAP_EXTRA_LIB_PATH)<br>
&gt; APP_LIB_DEPS+=$(SNAP_EXTRA_LIB_PATH)<br>
&gt;<br>
&gt; LIBDRM_CFLAGS = $(shell pkg-config --cflags libdrm)<br>
&gt; LIBDRM_LIB = $(shell pkg-config --libs libdrm)<br>
&gt; DRI_LIB_DEPS  = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB)<br>
&gt; GL_LIB_DEPS   = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lXdamage -lXfixes<br>
&gt; \<br>
&gt;         -lm -lpthread -ldl $(LIBDRM_LIB)<br>
&gt;<br>
&gt;<br>
&gt; # Directories<br>
&gt; SRC_DIRS := glsl mesa/es glx egl $(SRC_DIRS)<br>
&gt; PROGRAM_DIRS := egl $(PROGRAM_DIRS) es1/screen es1/xegl es2/xegl<br>
&gt;<br>
&gt; # EGL directories<br>
&gt; EGL_DRIVERS_DIRS = glx<br>
&gt; EGL_DISPLAYS = x11 kms<br>
&gt;<br>
&gt; DRIVER_DIRS = dri<br>
&gt; WINDOW_SYSTEM = dri<br>
&gt; GALLIUM_WINSYS_DIRS = drm egl_drm<br>
&gt; GALLIUM_WINSYS_DRM_DIRS = egl es vmware swrast<br>
&gt; GALLIUM_STATE_TRACKERS_DIRS = egl es vega<br>
&gt;<br>
&gt; DRI_DIRS = i810 i915 i965 mach64 mga r128 r200 r300 radeon \<br>
&gt;     savage sis tdfx unichrome swrast<br>
&gt;<br>
&gt; INTEL_LIBS = `pkg-config --libs libdrm_intel`<br>
&gt; INTEL_CFLAGS = `pkg-config --cflags libdrm_intel`<br>
&gt;<br>
&gt; RADEON_LIBS = `pkg-config --libs libdrm_radeon`<br>
&gt; RADEON_CFLAGS = `pkg-config --cflags libdrm_radeon`<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On Tue, Jun 1, 2010 at 9:36 PM, Jamie Amendolagine<br>
&gt; &lt;<a href="mailto:jamie.amendolagine@gmail.com">jamie.amendolagine@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Ah. I&#39;ll try compiling qemu from source to see what options there are etc<br>
&gt;&gt; -- it looks like there is a kms option and maybe qemu from the ubuntu repo<br>
&gt;&gt; is not enabling it...<br>
&gt;&gt; If I can not get that to work, is there a best way to get<br>
&gt;&gt; mesa/egl/ogles-1/2/ovg working without X11? Even in software mode?<br>
&gt;&gt;<br>
&gt;&gt; Jamie<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Tue, Jun 1, 2010 at 7:20 PM, Chia-I Wu &lt;<a href="mailto:olvaffe@gmail.com">olvaffe@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Wed, Jun 2, 2010 at 1:13 AM, Jamie Amendolagine<br>
&gt;&gt;&gt; &lt;<a href="mailto:jamie.amendolagine@gmail.com">jamie.amendolagine@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt; &gt; So, I can&#39;t find any instructions on getting this up and running<br>
&gt;&gt;&gt; &gt; (x86-linux-uclibc-mesa-7.8.1 / qemu). I think that I&#39;m pretty close.<br>
&gt;&gt;&gt; &gt; Any<br>
&gt;&gt;&gt; &gt; help is much appreciated, and I promise to submit any patches that are<br>
&gt;&gt;&gt; &gt; useful...<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; So far I&#39;ve got the kernel (2.6.34) built with kms, and vmwgfx support.<br>
&gt;&gt;&gt; &gt; I<br>
&gt;&gt;&gt; &gt; boot an x86 image (uclibc) in qemu.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; /usr/bin/qemu -kernel &#39;/home/jamie/neworyzans/bzImage.kms2&#39; -append<br>
&gt;&gt;&gt; &gt; &#39;root=/dev/sda rw video=vmwgfx &#39; -boot c -m 128 -hda<br>
&gt;&gt;&gt; &gt; &#39;/home/jamie/neworyzans/output/images/rootfs.i686.ext2&#39; -net<br>
&gt;&gt;&gt; &gt; nic,vlan=0,model=e1000 -net tap,ifname=tap0,script=/etc/qemu-ifup  -vga<br>
&gt;&gt;&gt; &gt; vmware<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; on boot I modprobe the modules:<br>
&gt;&gt;&gt; &gt; modprobe vmwgfx<br>
&gt;&gt;&gt; &gt; The gfx resolution changes (corrupting the console), and the following<br>
&gt;&gt;&gt; &gt; modules seem to load OK:<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; lsmod:<br>
&gt;&gt;&gt; &gt; Module                  Size  Used by    Tainted: G<br>
&gt;&gt;&gt; &gt; vmwgfx                 62458  0<br>
&gt;&gt;&gt; &gt; ttm                    49037  1 vmwgfx<br>
&gt;&gt;&gt; &gt; drm                   164569  2 vmwgfx,ttm<br>
&gt;&gt;&gt; &gt; agpgart                31292  2 ttm,drm<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; qemu complains with the following:<br>
&gt;&gt;&gt; &gt; vmsvga_value_write: Bad colour depth: 24 bits<br>
&gt;&gt;&gt; &gt; vmsvga_value_write: Bad register 09<br>
&gt;&gt;&gt; &gt; vmsvga_value_write: Bad register 0a<br>
&gt;&gt;&gt; &gt; vmsvga_value_write: Bad register 0b<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; If I go ahead and try and run an app, I get this:<br>
&gt;&gt;&gt; &gt; export EGL_DRIVER=/usr/local/lib/egl/egl_kms_vmwgfx.so<br>
&gt;&gt;&gt; &gt; cd progs/egl<br>
&gt;&gt;&gt; &gt; ./eglscreen<br>
&gt;&gt;&gt; &gt; segfault<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; ./strace ./eglscreen<br>
&gt;&gt;&gt; &gt; (attached out.txt)<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; on the console running qemu I get this:<br>
&gt;&gt;&gt; &gt; vmsvga_value_write: Bad register 22<br>
&gt;&gt;&gt; &gt; vmsvga_value_write: Bad register 22<br>
&gt;&gt;&gt; &gt; vmsvga_value_write: Bad register 22<br>
&gt;&gt;&gt; &gt; vmsvga_value_write: Bad register 22<br>
&gt;&gt;&gt; &gt; ...<br>
&gt;&gt;&gt; &gt; vmsvga_value_write: Bad register 22<br>
&gt;&gt;&gt; &gt; vmsvga_value_write: Bad register 22<br>
&gt;&gt;&gt; &gt; vmsvga_value_write: Bad register 22<br>
&gt;&gt;&gt; &gt; vmsvga_value_write: Bad register 22<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Am I doing anything obviously wrong?<br>
&gt;&gt;&gt; I don&#39;t think qemu SVGA emulation implements the 3D interface used by<br>
&gt;&gt;&gt; gallium<br>
&gt;&gt;&gt; vmwgfx driver.  It might be the problem.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; --<br>
&gt;&gt;&gt; olv@LunarG.com<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
<br>
<br>
<br>
</div></div><font color="#888888">--<br>
olv@LunarG.com<br>
</font></blockquote></div><br>