[2/5] WineD3D: Optimize float constants in stateblocks

Alexandre Julliard julliard at winehq.org
Tue Aug 14 13:56:46 CDT 2007


Stefan Dösinger <stefan at codeweavers.com> writes:

> From f49fd192ed2747663bdb0445dff9d602519fbc95 Mon Sep 17 00:00:00 2001
> From: Stefan Doesinger <stefan at codeweavers.com>
> Date: Fri, 3 Aug 2007 20:26:29 +0200
> Subject: [PATCH] WineD3D: Optimize float constants in stateblocks
>
> ---
>  dlls/wined3d/device.c          |   24 +++++++++++++-
>  dlls/wined3d/stateblock.c      |   68 +++++++++++++++++++++-------------------
>  dlls/wined3d/wined3d_private.h |    4 ++
>  3 files changed, 62 insertions(+), 34 deletions(-)

This one is broken:

../../../tools/runtest -q -P wine -M d3d8.dll -T ../../.. -p d3d8_test.exe.so device.c && touch device.ok
wine: Unhandled page fault on write access to 0x000000f6 at address 0x61aad11c (thread 0039), starting debugger...
WineDbg starting on pid 003a
Unhandled exception: page fault on write access to 0x000000f6 in 32-bit code (0x61aad11c).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:61aad11c ESP:0033fa90 EBP:0033fac8 EFLAGS:00010202(   - 00      - -RI1)
 EAX:000000f6 EBX:61b3ae04 ECX:00000001 EDX:00000000
 ESI:001bd4d0 EDI:001c6f78
Stack dump:
0x0033fa90:  001bd4d0 001bd4e4 00000001 00000000
0x0033faa0:  00000000 00000000 00000000 602d53b1
0x0033fab0:  00000000 00000000 0000002b 617da640
0x0033fac0:  617dad24 001bd4b8 0033faf8 617caebf
0x0033fad0:  00123d30 00000001 001bd4c0 001bd4b8
0x0033fae0:  606e97df 0000005c 617cae3b 60715808
Backtrace:
=>1 0x61aad11c IWineD3DDeviceImpl_CreateStateBlock+0x3dc(iface=0x123d30, Type=0x1, ppStateBlock=0x1bd4c0, parent=0x1bd4b8) [/home/julliard/wine/wine/dlls/wined3d/device.c:478] in wined3d (0x0033fac8)
  2 0x617caebf IDirect3DDevice8Impl_CreateStateBlock+0x8f(iface=0x121780, Type=0x1, pToken=0x33fe08) [/home/julliard/wine/wine/dlls/d3d8/device.c:1177] in d3d8 (0x0033faf8)
  3 0x606e1260 func_device+0x2190() [/home/julliard/wine/wine/dlls/d3d8/tests/device.c:528] in d3d8_test (0x0033fe58)
  4 0x606e8818 run_test+0x128(name=0x1103c5) [/home/julliard/wine/wine/dlls/d3d8/tests/../../../include/wine/test.h:389] in d3d8_test (0x0033fea8)
  5 0x606e8ead main+0x14d(argc=<register ECX not in topmost frame>, argv=<register ECX not in topmost frame>) [/home/julliard/wine/wine/dlls/d3d8/tests/../../../include/wine/test.h:437] in d3d8_test (0x0033fed8)
  6 0x606e958b __wine_spec_exe_entry+0x5b(peb=0x7ffdf000) [/home/julliard/wine/wine/dlls/winecrt0/exe_entry.c:36] in d3d8_test (0x0033ff08)
  7 0x6041352e start_process+0xee(arg=0x0) [/home/julliard/wine/wine/dlls/kernel32/process.c:820] in kernel32 (0x0033ffe8)
  8 0x60027997 wine_switch_to_stack+0x17() in libwine.so.1 (0x00000000)
0x61aad11c IWineD3DDeviceImpl_CreateStateBlock+0x3dc [/home/julliard/wine/wine/dlls/wined3d/device.c:478] in wined3d: movl	%edx,0x0(%eax,%edx,4)
478	            object->contained_vs_consts_f[j] = j;

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list