MIRROR_ARB support is not dependent on OpenGL 1.3 as I originally ifdef'ed. It is apparently introduced fully in 1.4, or dependent on another ifdef, GL_ARB_texture_mirrored_repeat.
diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c index fff7039..e9f6385 100644 --- a/dlls/d3d8/device.c +++ b/dlls/d3d8/device.c
@@ -3011,7 +3011,7 @@ IDirect3DTexture8Impl *pTexture2 = (IDirect3DTexture8Impl *) pTexture; int i; - if (oldTxt == pTexture2 && pTexture2->Dirty == FALSE) { + if (oldTxt == pTexture && pTexture2->Dirty == FALSE) { TRACE("Skipping setting texture as old == new\n"); reapplyStates = FALSE; } else { @@ -3461,13 +3461,14 @@ case D3DTADDRESS_WRAP: wrapParm = GL_REPEAT; break; case D3DTADDRESS_CLAMP: wrapParm = GL_CLAMP_TO_EDGE; break; case D3DTADDRESS_BORDER: wrapParm = GL_REPEAT; break; /* FIXME: Not right, but better */ -#if defined(GL_VERSION_1_3) +#if defined(GL_VERSION_1_4) + case D3DTADDRESS_MIRROR: wrapParm = GL_MIRRORED_REPEAT; break; +#elif defined(GL_ARB_texture_mirrored_repeat) case D3DTADDRESS_MIRROR: wrapParm = GL_MIRRORED_REPEAT_ARB; break; - case D3DTADDRESS_MIRRORONCE: /* Unsupported in OpenGL but pretent mirror */ #else case D3DTADDRESS_MIRROR: /* Unsupported in OpenGL pre-1.4 */ - case D3DTADDRESS_MIRRORONCE: /* Unsupported in OpenGL */ #endif + case D3DTADDRESS_MIRRORONCE: /* Unsupported in OpenGL */ default: FIXME("Unrecognized or unsupported D3DTADDRESS_* value %ld, state %d\n", Value, Type); wrapParm = GL_REPEAT;