wined3d: Use GL_TEXTURE_2D for dummy textures.
diff --git a/dlls/wined3d/baseshader.c b/dlls/wined3d/baseshader.c
index f4230d7..9e937ad 100644
--- a/dlls/wined3d/baseshader.c
+++ b/dlls/wined3d/baseshader.c
@@ -333,10 +333,6 @@
} else {
int texType = IWineD3DBaseTexture_GetTextureDimensions(stateBlock->textures[sampler_code]);
switch(texType) {
- case GL_TEXTURE_1D:
- reg_maps->samplers[sampler_code] = (0x1 << 31) | WINED3DSTT_1D;
- break;
-
case GL_TEXTURE_2D:
reg_maps->samplers[sampler_code] = (0x1 << 31) | WINED3DSTT_2D;
break;
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index ab8e9ca..02bc406 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -487,8 +487,6 @@
checkGLcall("glDisable GL_TEXTURE_3D");
glDisable(GL_TEXTURE_2D);
checkGLcall("glDisable GL_TEXTURE_2D");
- glDisable(GL_TEXTURE_1D);
- checkGLcall("glDisable GL_TEXTURE_1D");
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
checkGLcall("glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);");
@@ -505,8 +503,6 @@
}
glDisable(GL_TEXTURE_3D);
checkGLcall("glDisable GL_TEXTURE_3D");
- glDisable(GL_TEXTURE_1D);
- checkGLcall("glDisable GL_TEXTURE_1D");
glEnable(GL_TEXTURE_2D);
checkGLcall("glEnable GL_TEXTURE_2D");
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
index 0548198..07af88d 100644
--- a/dlls/wined3d/state.c
+++ b/dlls/wined3d/state.c
@@ -1549,8 +1549,6 @@
*/
static void activate_dimensions(DWORD stage, IWineD3DStateBlockImpl *stateblock) {
if(stateblock->textures[stage]) {
- glDisable(GL_TEXTURE_1D);
- checkGLcall("glDisable(GL_TEXTURE_1D)");
switch(stateblock->textureDimensions[stage]) {
case GL_TEXTURE_2D:
glDisable(GL_TEXTURE_3D);
@@ -1590,8 +1588,6 @@
glDisable(GL_TEXTURE_CUBE_MAP_ARB);
checkGLcall("glDisable(GL_TEXTURE_CUBE_MAP_ARB)");
}
- glEnable(GL_TEXTURE_1D);
- checkGLcall("glEnable(GL_TEXTURE_1D)");
/* Binding textures is done by samplers. A dummy texture will be bound */
}
}
@@ -1639,8 +1635,6 @@
TRACE("Stage disabled\n");
if (mapped_stage != -1) {
/* Disable everything here */
- glDisable(GL_TEXTURE_1D);
- checkGLcall("glDisable(GL_TEXTURE_1D)");
glDisable(GL_TEXTURE_2D);
checkGLcall("glDisable(GL_TEXTURE_2D)");
glDisable(GL_TEXTURE_3D);
@@ -2079,8 +2073,8 @@
activate_dimensions(sampler, stateblock);
}
} /* Otherwise tex_colorop disables the stage */
- glBindTexture(GL_TEXTURE_1D, stateblock->wineD3DDevice->dummyTextureName[sampler]);
- checkGLcall("glBindTexture(GL_TEXTURE_1D, stateblock->wineD3DDevice->dummyTextureName[sampler])");
+ glBindTexture(GL_TEXTURE_2D, stateblock->wineD3DDevice->dummyTextureName[sampler]);
+ checkGLcall("glBindTexture(GL_TEXTURE_2D, stateblock->wineD3DDevice->dummyTextureName[sampler])");
}
}
diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c
index 5ccd5ee..fe92d1f 100644
--- a/dlls/wined3d/stateblock.c
+++ b/dlls/wined3d/stateblock.c
@@ -1083,13 +1083,14 @@
checkGLcall("glGenTextures");
TRACE("Dummy Texture %d given name %d\n", i, ThisDevice->dummyTextureName[i]);
- /* Generate a dummy 1d texture */
- This->textureDimensions[i] = GL_TEXTURE_1D;
- glBindTexture(GL_TEXTURE_1D, ThisDevice->dummyTextureName[i]);
+ /* Generate a dummy 2d texture (not using 1d because they cause many
+ * DRI drivers fall back to sw) */
+ This->textureDimensions[i] = GL_TEXTURE_2D;
+ glBindTexture(GL_TEXTURE_2D, ThisDevice->dummyTextureName[i]);
checkGLcall("glBindTexture");
- glTexImage1D(GL_TEXTURE_1D, 0, GL_LUMINANCE, 1, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, &white);
- checkGLcall("glTexImage1D");
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, 1, 1, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, &white);
+ checkGLcall("glTexImage2D");
}
LEAVE_GL();