mesa.git
15 years agonv50: implement IF, ELSE, ENDIF opcodes
Christoph Bumiller [Thu, 24 Sep 2009 14:39:56 +0000 (16:39 +0200)]
nv50: implement IF, ELSE, ENDIF opcodes

15 years agor300g: add texture format for xvmc
Cooper Yuan [Fri, 25 Sep 2009 07:15:20 +0000 (15:15 +0800)]
r300g: add texture format for xvmc

15 years agomesa/main: Make FEATURE_convolve follow feature conventions.
Chia-I Wu [Wed, 23 Sep 2009 08:56:20 +0000 (16:56 +0800)]
mesa/main: Make FEATURE_convolve follow feature conventions.

As shown in mfeatures.h, this allows users of convolve.h to work without
knowing if the feature is available.

15 years agomesa/main: Make FEATURE_colortable follow feature conventions.
Chia-I Wu [Mon, 7 Sep 2009 09:17:11 +0000 (17:17 +0800)]
mesa/main: Make FEATURE_colortable follow feature conventions.

As shown in mfeatures.h, this allows users of colortab.h to work
without knowing if the feature is available.

15 years agomesa/main: Make FEATURE_pixel_transfer follow feature conventions.
Chia-I Wu [Mon, 7 Sep 2009 08:59:27 +0000 (16:59 +0800)]
mesa/main: Make FEATURE_pixel_transfer follow feature conventions.

As shown in mfeatures.h, this allows users of pixel.h to work without
knowing if the feature is available.

15 years agomesa/main: Add comments to mfeatures.h.
Chia-I Wu [Mon, 7 Sep 2009 09:51:33 +0000 (17:51 +0800)]
mesa/main: Add comments to mfeatures.h.

The comments document the conventions that a feature may follow.

15 years agoprogs/perf: glGenerateMipmap() test
Brian Paul [Fri, 25 Sep 2009 01:36:37 +0000 (19:36 -0600)]
progs/perf: glGenerateMipmap() test

15 years agomesa: _mesa_meta_GenerateMipmap() now working
Brian Paul [Fri, 25 Sep 2009 01:33:22 +0000 (19:33 -0600)]
mesa: _mesa_meta_GenerateMipmap() now working

Handles GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP.
But GL_TEXTURE_3D and texture borders not supported yet.

15 years agomesa: remove: unused gl_vertex_program::TnlData field
Brian Paul [Thu, 24 Sep 2009 19:38:27 +0000 (13:38 -0600)]
mesa: remove: unused gl_vertex_program::TnlData field

15 years agost/xorg: start working on the Xv acceleration code
Zack Rusin [Thu, 24 Sep 2009 23:20:08 +0000 (19:20 -0400)]
st/xorg: start working on the Xv acceleration code

15 years agost/xorg: fills are supported plussome minor clenups
Zack Rusin [Wed, 23 Sep 2009 16:06:13 +0000 (12:06 -0400)]
st/xorg: fills are supported plussome minor clenups

15 years agost/xorg: add easier way of disabling/enabling acceleration
Zack Rusin [Wed, 23 Sep 2009 13:00:58 +0000 (09:00 -0400)]
st/xorg: add easier way of disabling/enabling acceleration

15 years agollvmpipe: add missing __FUNCTION__ parameter to debug_printf() calls
Brian Paul [Thu, 24 Sep 2009 22:08:47 +0000 (16:08 -0600)]
llvmpipe: add missing __FUNCTION__ parameter to debug_printf() calls

15 years agollvmpipe: increase max 3D texture size to 256
Brian Paul [Thu, 24 Sep 2009 22:07:45 +0000 (16:07 -0600)]
llvmpipe: increase max 3D texture size to 256

15 years agoMerge branch 'mesa_7_6_branch'
Brian Paul [Thu, 24 Sep 2009 22:06:21 +0000 (16:06 -0600)]
Merge branch 'mesa_7_6_branch'

Conflicts:

src/mesa/vbo/vbo_exec_array.c

15 years agoMerge branch 'mesa_7_5_branch' into mesa_7_6_branch
Brian Paul [Thu, 24 Sep 2009 22:01:26 +0000 (16:01 -0600)]
Merge branch 'mesa_7_5_branch' into mesa_7_6_branch

15 years agosoftpipe: Increase GL_MAX_3D_TEXTURE_SIZE to 256.
Vinson Lee [Thu, 24 Sep 2009 21:59:57 +0000 (15:59 -0600)]
softpipe: Increase GL_MAX_3D_TEXTURE_SIZE to 256.

15 years agoi965: Emit zero initialization for NV VP temporaries as required.
Eric Anholt [Thu, 24 Sep 2009 18:58:33 +0000 (11:58 -0700)]
i965: Emit zero initialization for NV VP temporaries as required.

This is similar to what r300 does inside the driver, but I've added it as
a generic option since it seems most hardware will want it.

Fixes piglit nv-init-zero-reg.vpfp and nv-init-zero-addr.vpfp.

15 years agoi965: Remove assert about NV_vp now that it somewhat works.
Eric Anholt [Wed, 23 Sep 2009 23:50:59 +0000 (16:50 -0700)]
i965: Remove assert about NV_vp now that it somewhat works.

15 years agoi965: Load NV program matrices when required.
Eric Anholt [Thu, 24 Sep 2009 17:40:32 +0000 (10:40 -0700)]
i965: Load NV program matrices when required.

15 years agomesa: Initialize NV_vertex_program fields for the parameter lists and such.
Eric Anholt [Wed, 23 Sep 2009 23:49:52 +0000 (16:49 -0700)]
mesa: Initialize NV_vertex_program fields for the parameter lists and such.

This helps let drivers treat NV_vp like ARB_vp.

15 years agomesa: remove glEnable(GL_DEPTH_BOUNDS_TEST_EXT) check/warning
Brian Paul [Thu, 24 Sep 2009 20:24:14 +0000 (14:24 -0600)]
mesa: remove glEnable(GL_DEPTH_BOUNDS_TEST_EXT) check/warning

At the time of the enable there may not be a Z buffer, but one
may be attached to the FBO later.

15 years agomesa: remove rgbMode check in enable_texture()
Brian Paul [Thu, 24 Sep 2009 20:19:06 +0000 (14:19 -0600)]
mesa: remove rgbMode check in enable_texture()

If the currently bound FBO isn't yet validated it's possible for
rgbMode to be zero so we'll lose the texture enable.
This could fix some FBO rendering glitches, but I don't know of
any specific instances.

15 years agointel: use default array/element buffers in intel_generate_mipmap()
Brian Paul [Thu, 24 Sep 2009 18:41:14 +0000 (12:41 -0600)]
intel: use default array/element buffers in intel_generate_mipmap()

If there happened to be a bound VBO when intel_generate_mipmap() was
called we blew up because of a bad vertex array pointer.

Fixes regnumonline, bug 23859.

15 years agomesa: replace assertion with no-op function assignment
Brian Paul [Thu, 24 Sep 2009 18:37:34 +0000 (12:37 -0600)]
mesa: replace assertion with no-op function assignment

15 years agomesa: added comment
Brian Paul [Thu, 24 Sep 2009 18:37:06 +0000 (12:37 -0600)]
mesa: added comment

15 years agovbo: limit number of warnings to 10
Brian Paul [Thu, 24 Sep 2009 18:35:51 +0000 (12:35 -0600)]
vbo: limit number of warnings to 10

Otherwise some apps will emit tons of warnings.

15 years agoMerge branch 'mesa_7_6_branch'
Pauli Nieminen [Thu, 24 Sep 2009 17:39:01 +0000 (20:39 +0300)]
Merge branch 'mesa_7_6_branch'

15 years agoradeon: Fix scissors for r600 KMS.
Pauli Nieminen [Thu, 24 Sep 2009 16:58:09 +0000 (19:58 +0300)]
radeon: Fix scissors for r600 KMS.

Radeon generic scissors code had problem that some of code was using exclusive
and some inclusive bottom right corner. Only r600 driver is using exclusive
coordinate so changed generic code to pass inclusive coordinate and r600 driver
changes BR coordinate to be exclusive.

15 years agoMerge branch 'mesa_7_6_branch'
Brian Paul [Thu, 24 Sep 2009 17:03:16 +0000 (11:03 -0600)]
Merge branch 'mesa_7_6_branch'

Conflicts:

src/mesa/drivers/dri/r600/r700_assembler.c
src/mesa/drivers/dri/r600/r700_chip.c
src/mesa/drivers/dri/r600/r700_render.c
src/mesa/drivers/dri/r600/r700_vertprog.c
src/mesa/drivers/dri/r600/r700_vertprog.h
src/mesa/drivers/dri/radeon/radeon_span.c

15 years agoMerge branch 'mesa_7_5_branch' into mesa_7_6_branch
Brian Paul [Thu, 24 Sep 2009 16:52:15 +0000 (10:52 -0600)]
Merge branch 'mesa_7_5_branch' into mesa_7_6_branch

15 years agogallium/trace: casts to silence warnings
Brian Paul [Thu, 24 Sep 2009 16:47:42 +0000 (10:47 -0600)]
gallium/trace: casts to silence warnings

15 years agotgsi/sse: remove old comments
Brian Paul [Thu, 24 Sep 2009 15:54:36 +0000 (09:54 -0600)]
tgsi/sse: remove old comments

15 years agotgsi/sse: implement SEQ, SGT, SLE, SNE
Brian Paul [Thu, 24 Sep 2009 15:51:05 +0000 (09:51 -0600)]
tgsi/sse: implement SEQ, SGT, SLE, SNE

15 years agotgsi/sse: Pass the lodbias, not zero. More comments.
Brian Paul [Thu, 24 Sep 2009 16:26:56 +0000 (10:26 -0600)]
tgsi/sse: Pass the lodbias, not zero.  More comments.

This fixes the glean/glsl1 "texture2D(), with bias" test when using SSE.

15 years agomesa: added default case return to silence warning
Brian Paul [Wed, 23 Sep 2009 21:44:37 +0000 (15:44 -0600)]
mesa: added default case return to silence warning

15 years agoglsl: init var to silence warning
Brian Paul [Wed, 23 Sep 2009 21:44:18 +0000 (15:44 -0600)]
glsl: init var to silence warning

15 years agoglsl: fix missing initializers warning
Brian Paul [Wed, 23 Sep 2009 21:44:02 +0000 (15:44 -0600)]
glsl: fix missing initializers warning

15 years agoprogs/perf: fix warnings in readpixels test
Keith Whitwell [Thu, 24 Sep 2009 15:52:14 +0000 (16:52 +0100)]
progs/perf: fix warnings in readpixels test

15 years agoprogs/perf: fix typo in sconscript
Keith Whitwell [Thu, 24 Sep 2009 15:50:27 +0000 (16:50 +0100)]
progs/perf: fix typo in sconscript

15 years agotrace: fix printf warnings
Keith Whitwell [Thu, 24 Sep 2009 15:49:40 +0000 (16:49 +0100)]
trace: fix printf warnings

15 years agosoftpipe: fix compiler warnings
Keith Whitwell [Thu, 24 Sep 2009 15:49:27 +0000 (16:49 +0100)]
softpipe: fix compiler warnings

15 years agopipebuffer: fix printf warnings
Keith Whitwell [Thu, 24 Sep 2009 15:49:05 +0000 (16:49 +0100)]
pipebuffer: fix printf warnings

15 years agopipebuffer: fix warnings
Keith Whitwell [Thu, 24 Sep 2009 15:48:49 +0000 (16:48 +0100)]
pipebuffer: fix warnings

15 years agodraw: fix warning
Keith Whitwell [Thu, 24 Sep 2009 15:44:58 +0000 (16:44 +0100)]
draw: fix warning

15 years agoprogs/perf: accept GL3.x also
Keith Whitwell [Wed, 23 Sep 2009 18:03:07 +0000 (19:03 +0100)]
progs/perf: accept GL3.x also

15 years agor600 : fix draw_prim bug: vertex fetcher setting.
Richard Li [Thu, 24 Sep 2009 15:26:15 +0000 (11:26 -0400)]
r600 : fix draw_prim bug:  vertex fetcher setting.

15 years agosoftpipe: Use portable INLINE macro.
José Fonseca [Thu, 24 Sep 2009 14:27:19 +0000 (15:27 +0100)]
softpipe: Use portable INLINE macro.

15 years agosoftpipe: Update SConscript.
José Fonseca [Thu, 24 Sep 2009 14:27:03 +0000 (15:27 +0100)]
softpipe: Update SConscript.

15 years agor600 : disable draw_prim for now.
Richard Li [Thu, 24 Sep 2009 14:12:40 +0000 (10:12 -0400)]
r600 : disable draw_prim for now.

15 years agor600: add support for CUBE textures, also TXP
Andre Maasikas [Wed, 23 Sep 2009 11:20:59 +0000 (14:20 +0300)]
r600: add support for CUBE textures, also TXP

seems to work here ...

15 years agor600: fix typo in the last commit
Alex Deucher [Mon, 21 Sep 2009 20:48:55 +0000 (16:48 -0400)]
r600: fix typo in the last commit

128 gprs, 256 reg-based consts

15 years agor600: various cleanups
Alex Deucher [Mon, 21 Sep 2009 20:30:14 +0000 (16:30 -0400)]
r600: various cleanups

- max texture size is 8k, but mesa doesn't support
that at the moment.
- attempt to set shader limits to what the hw actually
supports
- clean up some old r300 cruft
- no need to explicitly disable irqs.  This is fixed
in the drm now.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
15 years agor600: fix some issues with LIT instruction
Andre Maasikas [Mon, 21 Sep 2009 14:14:25 +0000 (10:14 -0400)]
r600: fix some issues with LIT instruction

- MUL_LIT is ALU.Trans instruction
- some Trans instructions can take 3 arguments
- don't clobber dst.x, use dst.z as temp, it'll get written correct
  value in last insn
- respect source swizzles

15 years agor600: fix point sizes
Alex Deucher [Sat, 19 Sep 2009 19:18:42 +0000 (15:18 -0400)]
r600: fix point sizes

registers takes radius

15 years agor600: fix polygon offset
Alex Deucher [Sat, 19 Sep 2009 18:46:06 +0000 (14:46 -0400)]
r600: fix polygon offset

15 years agoradeon: don't build non-r600 span code on r600
Alex Deucher [Tue, 15 Sep 2009 21:12:03 +0000 (17:12 -0400)]
radeon: don't build non-r600 span code on r600

15 years agor600: minor span cleanups
Alex Deucher [Tue, 15 Sep 2009 20:58:37 +0000 (16:58 -0400)]
r600: minor span cleanups

15 years agor600: support position_invariant programs
Andre Maasikas [Tue, 15 Sep 2009 15:27:51 +0000 (11:27 -0400)]
r600: support position_invariant programs

15 years agor600: add span support for 1D tiles
Alex Deucher [Mon, 14 Sep 2009 22:05:15 +0000 (18:05 -0400)]
r600: add span support for 1D tiles

1D tile span support for depth/stencil/color/textures

Z and stencil buffers are always tiled, so this fixes
sw access to Z and stencil buffers.  color and textures
are currently linear, but this adds span support when we
implement 1D tiling.

This fixes the text in progs/demos/engine and progs/tests/z*

15 years agor600: fix warning
Alex Deucher [Mon, 14 Sep 2009 21:08:26 +0000 (17:08 -0400)]
r600: fix warning

Noticed by rnoland on IRC.

15 years agor600: fix texcoords from constants
Andre Maasikas [Fri, 11 Sep 2009 19:59:55 +0000 (15:59 -0400)]
r600: fix texcoords from constants

with some minor updates from Richard.

15 years agor600: enable caching of vertex programs
Andre Maasikas [Fri, 11 Sep 2009 14:59:05 +0000 (10:59 -0400)]
r600: enable caching of vertex programs

15 years agor600: check if textures are actually enabled before submission
Alex Deucher [Wed, 9 Sep 2009 15:14:17 +0000 (11:14 -0400)]
r600: check if textures are actually enabled before submission

noticed by taiu on IRC.

15 years agor600: fix ftp for dri1
Alex Deucher [Wed, 9 Sep 2009 05:41:46 +0000 (01:41 -0400)]
r600: fix ftp for dri1

We use t->bo for dri1 since r600 uses CS for dri1.

15 years agor600: don't setup hardware state if TFP
Dave Airlie [Wed, 9 Sep 2009 05:02:16 +0000 (15:02 +1000)]
r600: don't setup hardware state if TFP

if we have a BO here it means TFP and we should have set it
up already.

tested by b0le on #radeon

15 years agor600: fix dri2 clipping
Alex Deucher [Tue, 8 Sep 2009 20:03:25 +0000 (16:03 -0400)]
r600: fix dri2 clipping

15 years agogdi: Update for WGL state tracker interface changes.
José Fonseca [Thu, 24 Sep 2009 12:09:40 +0000 (13:09 +0100)]
gdi: Update for WGL state tracker interface changes.

15 years agowgl: DWM integration.
José Fonseca [Thu, 24 Sep 2009 12:08:34 +0000 (13:08 +0100)]
wgl: DWM integration.

15 years agoscons: Don't require -liberty on MinGW.
José Fonseca [Thu, 24 Sep 2009 12:05:27 +0000 (13:05 +0100)]
scons: Don't require -liberty on MinGW.

Not always present.

15 years agomesa: Fix missing finite symbol error on Windows.
José Fonseca [Thu, 24 Sep 2009 11:36:11 +0000 (12:36 +0100)]
mesa: Fix missing finite symbol error on Windows.

Caused by some weird logic regarding the __WIN32__ define which made
the finite definition dependent on the header include order.

15 years agor600: fix up ordering of functions in draw prims path
Alex Deucher [Wed, 23 Sep 2009 23:42:07 +0000 (19:42 -0400)]
r600: fix up ordering of functions in draw prims path

Shaders and IB need to be updated and allocated before
calling validatebuffers.

15 years agor300: fallback to software rendering if we are out of free texcoords
Maciej Cencora [Sat, 19 Sep 2009 16:45:59 +0000 (18:45 +0200)]
r300: fallback to software rendering if we are out of free texcoords

Fixes #22741

15 years agor600: fix r700PredictRenderSize for draw prims path
Alex Deucher [Wed, 23 Sep 2009 20:54:12 +0000 (16:54 -0400)]
r600: fix r700PredictRenderSize for draw prims path

15 years agor600 : add hw index buffer draw support.
Richard Li [Wed, 23 Sep 2009 20:10:20 +0000 (16:10 -0400)]
r600 : add hw index buffer draw support.

15 years agoprogs/perf: added glReadPixels benchmark
Brian Paul [Wed, 23 Sep 2009 20:04:38 +0000 (14:04 -0600)]
progs/perf: added glReadPixels benchmark

15 years agoprogs/perf: also request a stencil buffer
Brian Paul [Wed, 23 Sep 2009 20:04:25 +0000 (14:04 -0600)]
progs/perf: also request a stencil buffer

15 years agoswrast: add lod bias when texture sampling
Brian Paul [Wed, 23 Sep 2009 19:35:03 +0000 (13:35 -0600)]
swrast: add lod bias when texture sampling

Mostly fixes progs/demos/lodbias when MESA_TEX_PROG=1.  But the LOD still
seems off by -1 or so.
May be an issue with the params passed to _swrast_compute_lambda()

15 years agomesa: don't bias LOD in shader interpreter; do it in swrast
Brian Paul [Wed, 23 Sep 2009 19:34:30 +0000 (13:34 -0600)]
mesa: don't bias LOD in shader interpreter; do it in swrast

15 years agoswrast: fix typo in partial derivatives parameter passing
Brian Paul [Wed, 23 Sep 2009 18:54:14 +0000 (12:54 -0600)]
swrast: fix typo in partial derivatives parameter passing

15 years agoFinish removing glcore
Adam Jackson [Wed, 23 Sep 2009 19:22:19 +0000 (15:22 -0400)]
Finish removing glcore

15 years agor600: fix copy/paste typo
Alex Deucher [Wed, 23 Sep 2009 19:02:19 +0000 (15:02 -0400)]
r600: fix copy/paste typo

15 years agor600: fix some warnings
Alex Deucher [Wed, 23 Sep 2009 18:56:56 +0000 (14:56 -0400)]
r600: fix some warnings

15 years agor600: add support for CUBE textures, also TXP
Andre Maasikas [Wed, 23 Sep 2009 11:20:59 +0000 (14:20 +0300)]
r600: add support for CUBE textures, also TXP

seems to work here ...

15 years agoprogs/perf: Actually bind the newly created vbo.
Michal Krol [Wed, 23 Sep 2009 18:24:35 +0000 (20:24 +0200)]
progs/perf: Actually bind the newly created vbo.

15 years agost/mesa: trim calculated userbuffer size
Keith Whitwell [Wed, 23 Sep 2009 13:40:45 +0000 (14:40 +0100)]
st/mesa: trim calculated userbuffer size

In get_array_bounds we were previously defining a user buffer sized as
(nr_vertices * stride).  The trouble is that if the vertex data
occupies less than stride bytes, the extra tailing (stride - size)
bytes may extend outside the memory actually allocated by the app and
caused a segfault.

To fix this, define a the buffer bounds to be:

   ptr .. ptr + (nr-1)*stride + element_size

15 years agollvmpipe: move tile cache datatypes into .c file since they're private
Brian Paul [Wed, 23 Sep 2009 17:08:12 +0000 (11:08 -0600)]
llvmpipe: move tile cache datatypes into .c file since they're private

15 years agosoftpipe: replace macros with inline functions
Brian Paul [Wed, 23 Sep 2009 17:51:52 +0000 (11:51 -0600)]
softpipe: replace macros with inline functions

And update comments.

15 years agosoftpipe: white-space/formatting fixes and updated comments
Brian Paul [Wed, 23 Sep 2009 17:35:33 +0000 (11:35 -0600)]
softpipe: white-space/formatting fixes and updated comments

15 years agollvmpipe: added max texture/surface size sanity check
Brian Paul [Wed, 23 Sep 2009 17:04:57 +0000 (11:04 -0600)]
llvmpipe: added max texture/surface size sanity check

Carried over from softpipe driver.

15 years agollvmpipe: increase MAX_WIDTH/HEIGHT to match max texture size
Brian Paul [Wed, 23 Sep 2009 17:04:07 +0000 (11:04 -0600)]
llvmpipe: increase MAX_WIDTH/HEIGHT to match max texture size

15 years agoMerge branch 'mesa_7_6_branch'
Brian Paul [Wed, 23 Sep 2009 17:00:04 +0000 (11:00 -0600)]
Merge branch 'mesa_7_6_branch'

Conflicts:

src/gallium/drivers/softpipe/sp_tile_cache.c

15 years agosoftpipe: added max texture/surface size sanity check
Brian Paul [Wed, 23 Sep 2009 16:50:38 +0000 (10:50 -0600)]
softpipe: added max texture/surface size sanity check

15 years agosoftpipe: increase MAX_WIDTH/HEIGTH 4096 to match max texture size
Brian Paul [Tue, 22 Sep 2009 21:35:05 +0000 (15:35 -0600)]
softpipe: increase MAX_WIDTH/HEIGTH 4096 to match max texture size

15 years agoMerge branch 'softpipe-opt'
Keith Whitwell [Wed, 23 Sep 2009 16:37:28 +0000 (17:37 +0100)]
Merge branch 'softpipe-opt'

Conflicts:
progs/demos/cubemap.c
src/gallium/drivers/softpipe/sp_tex_sample.c
src/gallium/drivers/softpipe/sp_texture.c

15 years agogallium/include: update some comments
Keith Whitwell [Thu, 17 Sep 2009 18:18:39 +0000 (19:18 +0100)]
gallium/include: update some comments

15 years agost/xorg: fix a typo
Zack Rusin [Wed, 23 Sep 2009 16:05:13 +0000 (12:05 -0400)]
st/xorg: fix a typo

it'd be too easy, eh

15 years agost/xorg: keep the user buffer contents around
Zack Rusin [Tue, 22 Sep 2009 21:49:53 +0000 (17:49 -0400)]
st/xorg: keep the user buffer contents around

Michel noticed that they were getting out of scope

15 years agoprogs/perf: set TexSubImage4=FALSE
Brian Paul [Wed, 23 Sep 2009 14:06:29 +0000 (08:06 -0600)]
progs/perf: set TexSubImage4=FALSE

15 years agowgl: Eliminate the shared layer; implement WGL API on top of the ICD callbacks.
José Fonseca [Tue, 22 Sep 2009 17:51:41 +0000 (18:51 +0100)]
wgl: Eliminate the shared layer; implement WGL API on top of the ICD callbacks.

While the WGL API has been stale for decades now, the ICD interface has
been updated with new Windows versions, so it is much easier to define
everything in terms of the ICD interfaces, which is pretty much what
Microsoft's opengl32.dll does anyway.