Stefan Dösinger <stefan(a)codeweavers.com> writes:
> From f49fd192ed2747663bdb0445dff9d602519fbc95 Mon Sep 17 00:00:00 2001
> From: Stefan Doesinger <stefan(a)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(a)winehq.org