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