[SCM] DarkPlaces, a Quake engine branch, master, updated. debian/0_20110628+svn11231-1-1-g4c7a08f

Simon McVittie smcv at debian.org
Tue Jul 19 10:20:57 UTC 2011


The following commit has been merged in the master branch:
commit 4c7a08f91e6a2e68a79ace2a05857a00a901c570
Author: Simon McVittie <smcv at debian.org>
Date:   Tue Jul 19 10:35:24 2011 +0100

    Don't compile SSE code, or the software rasterizer (which requires SSE2), on non-x86

diff --git a/debian/changelog b/debian/changelog
index 3825db4..6951e28 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+darkplaces (0~20110628+svn11231-2) unstable; urgency=low
+
+  * Don't compile SSE code, or the software rasterizer (which requires SSE2),
+    on non-x86
+
+ -- Simon McVittie <smcv at debian.org>  Mon, 18 Jul 2011 23:08:10 +0100
+
 darkplaces (0~20110628+svn11231-1) unstable; urgency=low
 
   * Initial release to Debian under this name (Closes: #319599)
diff --git a/debian/patches/0018-Don-t-build-SSE-only-objects-on-non-x86-CPUs.patch b/debian/patches/0018-Don-t-build-SSE-only-objects-on-non-x86-CPUs.patch
new file mode 100644
index 0000000..191a012
--- /dev/null
+++ b/debian/patches/0018-Don-t-build-SSE-only-objects-on-non-x86-CPUs.patch
@@ -0,0 +1,892 @@
+From 0518e7bca50e2eaeda8a8d7739db7c0d0169a00f Mon Sep 17 00:00:00 2001
+From: Simon McVittie <smcv at debian.org>
+Date: Tue, 19 Jul 2011 10:34:39 +0100
+Subject: [PATCH] Don't build SSE-only objects on non-x86 CPUs
+
+Compilers for non-x86 platforms don't understand -msse or -msse2, and
+these files aren't usable on non-x86 anyway.
+
+Origin: vendor, Debian
+---
+ gl_backend.c  |   58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ gl_rmain.c    |   24 ++++++++++++++++++++++-
+ gl_textures.c |   16 +++++++++++++++
+ makefile      |   12 +++++++++++
+ makefile.inc  |   16 ++++++++------
+ quakedef.h    |    5 ++++
+ vid_glx.c     |    9 +++++++-
+ vid_sdl.c     |    6 ++++-
+ vid_shared.c  |    4 ++-
+ vid_wgl.c     |    6 ++++-
+ 10 files changed, 144 insertions(+), 12 deletions(-)
+
+diff --git a/gl_backend.c b/gl_backend.c
+index 0c3e739..12406c8 100644
+--- a/gl_backend.c
++++ b/gl_backend.c
+@@ -571,7 +571,9 @@ void GL_Finish(void)
+ 		Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		DPSOFTRAST_Finish();
++#endif
+ 		break;
+ 	}
+ }
+@@ -1120,7 +1122,9 @@ void R_SetViewport(const r_viewport_t *v)
+ 		Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		DPSOFTRAST_Viewport(v->x, v->y, v->width, v->height);
++#endif
+ 		break;
+ 	case RENDERPATH_GL20:
+ 	case RENDERPATH_GLES2:
+@@ -1273,7 +1277,9 @@ void R_Mesh_ResetRenderTargets(void)
+ 		Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		DPSOFTRAST_SetRenderTargets(vid.width, vid.height, vid.softdepthpixels, vid.softpixels, NULL, NULL, NULL);
++#endif
+ 		break;
+ 	}
+ }
+@@ -1336,6 +1342,7 @@ void R_Mesh_SetRenderTargets(int fbo, rtexture_t *depthtexture, rtexture_t *colo
+ 		Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		if (fbo)
+ 		{
+ 			int width, height;
+@@ -1349,6 +1356,7 @@ void R_Mesh_SetRenderTargets(int fbo, rtexture_t *depthtexture, rtexture_t *colo
+ 		}
+ 		else
+ 			DPSOFTRAST_SetRenderTargets(vid.width, vid.height, vid.softdepthpixels, vid.softpixels, NULL, NULL, NULL);
++#endif
+ 		break;
+ 	}
+ }
+@@ -1497,6 +1505,7 @@ static void GL_Backend_ResetState(void)
+ 		CHECKGLERROR
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		DPSOFTRAST_ColorMask(1,1,1,1);
+ 		DPSOFTRAST_BlendFunc(gl_state.blendfunc1, gl_state.blendfunc2);
+ 		DPSOFTRAST_CullFace(gl_state.cullface);
+@@ -1505,6 +1514,7 @@ static void GL_Backend_ResetState(void)
+ 		DPSOFTRAST_PolygonOffset(gl_state.polygonoffset[0], gl_state.polygonoffset[1]);
+ 		DPSOFTRAST_SetRenderTargets(vid.width, vid.height, vid.softdepthpixels, vid.softpixels, NULL, NULL, NULL);
+ 		DPSOFTRAST_Viewport(0, 0, vid.width, vid.height);
++#endif
+ 		break;
+ 	case RENDERPATH_GL20:
+ 	case RENDERPATH_GLES2:
+@@ -1686,7 +1696,9 @@ void GL_BlendFunc(int blendfunc1, int blendfunc2)
+ 			Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 			break;
+ 		case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 			DPSOFTRAST_BlendFunc(gl_state.blendfunc1, gl_state.blendfunc2);
++#endif
+ 			break;
+ 		}
+ 	}
+@@ -1719,7 +1731,9 @@ void GL_DepthMask(int state)
+ 			Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 			break;
+ 		case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 			DPSOFTRAST_DepthMask(gl_state.depthmask);
++#endif
+ 			break;
+ 		}
+ 	}
+@@ -1759,7 +1773,9 @@ void GL_DepthTest(int state)
+ 			Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 			break;
+ 		case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 			DPSOFTRAST_DepthTest(gl_state.depthtest);
++#endif
+ 			break;
+ 		}
+ 	}
+@@ -1792,7 +1808,9 @@ void GL_DepthFunc(int state)
+ 			Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 			break;
+ 		case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 			DPSOFTRAST_DepthFunc(gl_state.depthfunc);
++#endif
+ 			break;
+ 		}
+ 	}
+@@ -1834,7 +1852,9 @@ void GL_DepthRange(float nearfrac, float farfrac)
+ 			Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 			break;
+ 		case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 			DPSOFTRAST_DepthRange(gl_state.depthrange[0], gl_state.depthrange[1]);
++#endif
+ 			break;
+ 		}
+ 	}
+@@ -1988,7 +2008,9 @@ void GL_PolygonOffset(float planeoffset, float depthoffset)
+ 			Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 			break;
+ 		case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 			DPSOFTRAST_PolygonOffset(gl_state.polygonoffset[0], gl_state.polygonoffset[1]);
++#endif
+ 			break;
+ 		}
+ 	}
+@@ -2026,7 +2048,9 @@ void GL_SetMirrorState(qboolean state)
+ 			Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 			break;
+ 		case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 			DPSOFTRAST_CullFace(gl_state.cullface);
++#endif
+ 			break;
+ 		}
+ 	}
+@@ -2103,12 +2127,14 @@ void GL_CullFace(int state)
+ 		Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		if (gl_state.cullface != state)
+ 		{
+ 			gl_state.cullface = state;
+ 			gl_state.cullfaceenable = state != GL_NONE ? true : false;
+ 			DPSOFTRAST_CullFace(gl_state.cullface);
+ 		}
++#endif
+ 		break;
+ 	}
+ }
+@@ -2208,7 +2234,9 @@ void GL_ColorMask(int r, int g, int b, int a)
+ 			Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 			break;
+ 		case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 			DPSOFTRAST_ColorMask(r, g, b, a);
++#endif
+ 			break;
+ 		}
+ 	}
+@@ -2237,7 +2265,9 @@ void GL_Color(float cr, float cg, float cb, float ca)
+ 			// no equivalent in D3D
+ 			break;
+ 		case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 			DPSOFTRAST_Color4f(cr, cg, cb, ca);
++#endif
+ 			break;
+ 		case RENDERPATH_GL20:
+ 		case RENDERPATH_GLES2:
+@@ -2279,7 +2309,9 @@ void GL_Scissor (int x, int y, int width, int height)
+ 		Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		DPSOFTRAST_Scissor(x, y, width, height);
++#endif
+ 		break;
+ 	}
+ }
+@@ -2315,7 +2347,9 @@ void GL_ScissorTest(int state)
+ 			Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 			break;
+ 		case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 			DPSOFTRAST_ScissorTest(gl_state.scissortest);
++#endif
+ 			break;
+ 		}
+ 	}
+@@ -2366,10 +2400,12 @@ void GL_Clear(int mask, const float *colorvalue, float depthvalue, int stencilva
+ 		Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		if (mask & GL_COLOR_BUFFER_BIT)
+ 			DPSOFTRAST_ClearColor(colorvalue[0], colorvalue[1], colorvalue[2], colorvalue[3]);
+ 		if (mask & GL_DEPTH_BUFFER_BIT)
+ 			DPSOFTRAST_ClearDepth(depthvalue);
++#endif
+ 		break;
+ 	}
+ }
+@@ -2429,7 +2465,9 @@ void GL_ReadPixelsBGRA(int x, int y, int width, int height, unsigned char *outpi
+ 		Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		DPSOFTRAST_GetPixelsBGRA(x, y, width, height, outpixels);
++#endif
+ 		break;
+ 	}
+ }
+@@ -2933,7 +2971,9 @@ void R_Mesh_Draw(int firstvertex, int numvertices, int firsttriangle, int numtri
+ 			Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 			break;
+ 		case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 			DPSOFTRAST_DrawTriangles(firstvertex, numvertices, numtriangles, element3i, element3s);
++#endif
+ 			break;
+ 		case RENDERPATH_GLES1:
+ 		case RENDERPATH_GLES2:
+@@ -3452,7 +3492,9 @@ void R_Mesh_CopyToTexture(rtexture_t *tex, int tx, int ty, int sx, int sy, int w
+ 		Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		DPSOFTRAST_CopyRectangleToTexture(tex->texnum, 0, tx, ty, sx, sy, width, height);
++#endif
+ 		break;
+ 	}
+ }
+@@ -3631,6 +3673,7 @@ void R_Mesh_TexBind(unsigned int unitnum, rtexture_t *tex)
+ 		Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		if (!tex)
+ 		{
+ 			tex = r_texture_white;
+@@ -3643,6 +3686,7 @@ void R_Mesh_TexBind(unsigned int unitnum, rtexture_t *tex)
+ 			return;
+ 		unit->texture = tex;
+ 		DPSOFTRAST_SetTexture(unitnum, texnum);
++#endif
+ 		break;
+ 	}
+ }
+@@ -3987,6 +4031,7 @@ void R_Mesh_PrepareVertices_Vertex3f(int numvertices, const float *vertex3f, con
+ 		Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		DPSOFTRAST_SetVertexPointer(vertex3f, sizeof(float[3]));
+ 		DPSOFTRAST_SetColorPointer(NULL, 0);
+ 		DPSOFTRAST_SetTexCoordPointer(0, 2, sizeof(float[2]), NULL);
+@@ -3994,6 +4039,7 @@ void R_Mesh_PrepareVertices_Vertex3f(int numvertices, const float *vertex3f, con
+ 		DPSOFTRAST_SetTexCoordPointer(2, 2, sizeof(float[2]), NULL);
+ 		DPSOFTRAST_SetTexCoordPointer(3, 2, sizeof(float[2]), NULL);
+ 		DPSOFTRAST_SetTexCoordPointer(4, 2, sizeof(float[2]), NULL);
++#endif
+ 		break;
+ 	}
+ }
+@@ -4062,6 +4108,7 @@ void R_Mesh_PrepareVertices_Generic_Arrays(int numvertices, const float *vertex3
+ 	case RENDERPATH_D3D11:
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		DPSOFTRAST_SetVertexPointer(vertex3f, sizeof(float[3]));
+ 		DPSOFTRAST_SetColorPointer(color4f, sizeof(float[4]));
+ 		DPSOFTRAST_SetTexCoordPointer(0, 2, sizeof(float[2]), texcoord2f);
+@@ -4069,6 +4116,7 @@ void R_Mesh_PrepareVertices_Generic_Arrays(int numvertices, const float *vertex3
+ 		DPSOFTRAST_SetTexCoordPointer(2, 2, sizeof(float[2]), NULL);
+ 		DPSOFTRAST_SetTexCoordPointer(3, 2, sizeof(float[2]), NULL);
+ 		DPSOFTRAST_SetTexCoordPointer(4, 2, sizeof(float[2]), NULL);
++#endif
+ 		return;
+ 	}
+ 
+@@ -4181,6 +4229,7 @@ void R_Mesh_PrepareVertices_Generic(int numvertices, const r_vertexgeneric_t *ve
+ 		Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		DPSOFTRAST_SetVertexPointer(vertex->vertex3f, sizeof(*vertex));
+ 		DPSOFTRAST_SetColorPointer(vertex->color4f, sizeof(*vertex));
+ 		DPSOFTRAST_SetTexCoordPointer(0, 2, sizeof(*vertex), vertex->texcoord2f);
+@@ -4188,6 +4237,7 @@ void R_Mesh_PrepareVertices_Generic(int numvertices, const r_vertexgeneric_t *ve
+ 		DPSOFTRAST_SetTexCoordPointer(2, 2, sizeof(*vertex), NULL);
+ 		DPSOFTRAST_SetTexCoordPointer(3, 2, sizeof(*vertex), NULL);
+ 		DPSOFTRAST_SetTexCoordPointer(4, 2, sizeof(*vertex), NULL);
++#endif
+ 		break;
+ 	}
+ }
+@@ -4256,6 +4306,7 @@ void R_Mesh_PrepareVertices_Mesh_Arrays(int numvertices, const float *vertex3f,
+ 	case RENDERPATH_D3D11:
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		DPSOFTRAST_SetVertexPointer(vertex3f, sizeof(float[3]));
+ 		DPSOFTRAST_SetColorPointer(color4f, sizeof(float[4]));
+ 		DPSOFTRAST_SetTexCoordPointer(0, 2, sizeof(float[2]), texcoordtexture2f);
+@@ -4263,6 +4314,7 @@ void R_Mesh_PrepareVertices_Mesh_Arrays(int numvertices, const float *vertex3f,
+ 		DPSOFTRAST_SetTexCoordPointer(2, 3, sizeof(float[3]), tvector3f);
+ 		DPSOFTRAST_SetTexCoordPointer(3, 3, sizeof(float[3]), normal3f);
+ 		DPSOFTRAST_SetTexCoordPointer(4, 2, sizeof(float[2]), texcoordlightmap2f);
++#endif
+ 		return;
+ 	}
+ 
+@@ -4386,6 +4438,7 @@ void R_Mesh_PrepareVertices_Mesh(int numvertices, const r_vertexmesh_t *vertex,
+ 		Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		DPSOFTRAST_SetVertexPointer(vertex->vertex3f, sizeof(*vertex));
+ 		DPSOFTRAST_SetColorPointer(vertex->color4f, sizeof(*vertex));
+ 		DPSOFTRAST_SetTexCoordPointer(0, 2, sizeof(*vertex), vertex->texcoordtexture2f);
+@@ -4393,6 +4446,7 @@ void R_Mesh_PrepareVertices_Mesh(int numvertices, const r_vertexmesh_t *vertex,
+ 		DPSOFTRAST_SetTexCoordPointer(2, 3, sizeof(*vertex), vertex->tvector3f);
+ 		DPSOFTRAST_SetTexCoordPointer(3, 3, sizeof(*vertex), vertex->normal3f);
+ 		DPSOFTRAST_SetTexCoordPointer(4, 2, sizeof(*vertex), vertex->texcoordlightmap2f);
++#endif
+ 		break;
+ 	}
+ }
+@@ -4422,7 +4476,9 @@ void GL_BlendEquationSubtract(qboolean negated)
+ 			Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 			break;
+ 		case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 			DPSOFTRAST_BlendSubtract(true);
++#endif
+ 			break;
+ 		}
+ 	}
+@@ -4449,7 +4505,9 @@ void GL_BlendEquationSubtract(qboolean negated)
+ 			Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 			break;
+ 		case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 			DPSOFTRAST_BlendSubtract(false);
++#endif
+ 			break;
+ 		}
+ 	}
+diff --git a/gl_rmain.c b/gl_rmain.c
+index ca7b583..0394409 100644
+--- a/gl_rmain.c
++++ b/gl_rmain.c
+@@ -1781,6 +1781,7 @@ void R_SetupShader_SetPermutationHLSL(unsigned int mode, unsigned int permutatio
+ }
+ #endif
+ 
++#ifdef HAVE_DPSOFTRAST
+ void R_SetupShader_SetPermutationSoft(unsigned int mode, unsigned int permutation)
+ {
+ 	DPSOFTRAST_SetShader(mode, permutation, r_shadow_glossexact.integer);
+@@ -1788,6 +1789,7 @@ void R_SetupShader_SetPermutationSoft(unsigned int mode, unsigned int permutatio
+ 	DPSOFTRAST_UniformMatrix4fv(DPSOFTRAST_UNIFORM_ModelViewMatrixM1, 1, false, gl_modelview16f);
+ 	DPSOFTRAST_Uniform1f(DPSOFTRAST_UNIFORM_ClientTime, cl.time);
+ }
++#endif
+ 
+ void R_GLSL_Restart_f(void)
+ {
+@@ -1946,9 +1948,11 @@ void R_SetupShader_Generic(rtexture_t *first, rtexture_t *second, int texturemod
+ 		R_Mesh_TexBind(0, first );
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		R_SetupShader_SetPermutationSoft(SHADERMODE_GENERIC, permutation);
+ 		R_Mesh_TexBind(GL20TU_FIRST , first );
+ 		R_Mesh_TexBind(GL20TU_SECOND, second);
++#endif
+ 		break;
+ 	}
+ }
+@@ -1986,7 +1990,9 @@ void R_SetupShader_DepthOrShadow(qboolean notrippy)
+ 		R_Mesh_TexBind(0, 0);
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		R_SetupShader_SetPermutationSoft(SHADERMODE_DEPTH_OR_SHADOW, permutation);
++#endif
+ 		break;
+ 	}
+ }
+@@ -2023,7 +2029,9 @@ void R_SetupShader_ShowDepth(qboolean notrippy)
+ 	case RENDERPATH_GL11:
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		R_SetupShader_SetPermutationSoft(SHADERMODE_SHOWDEPTH, permutation);
++#endif
+ 		break;
+ 	}
+ }
+@@ -2816,6 +2824,7 @@ void R_SetupShader_Surface(const vec3_t lightcolorbase, qboolean modellighting,
+ 	case RENDERPATH_GLES1:
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		RSurf_PrepareVerticesForBatch(BATCHNEED_ARRAY_VERTEX | BATCHNEED_ARRAY_NORMAL | BATCHNEED_ARRAY_VECTOR | (rsurface.modellightmapcolor4f ? BATCHNEED_ARRAY_VERTEXCOLOR : 0) | BATCHNEED_ARRAY_TEXCOORD | (rsurface.uselightmaptexture ? BATCHNEED_ARRAY_LIGHTMAP : 0), texturenumsurfaces, texturesurfacelist);
+ 		R_Mesh_PrepareVertices_Mesh_Arrays(rsurface.batchnumvertices, rsurface.batchvertex3f, rsurface.batchsvector3f, rsurface.batchtvector3f, rsurface.batchnormal3f, rsurface.batchlightmapcolor4f, rsurface.batchtexcoordtexture2f, rsurface.batchtexcoordlightmap2f);
+ 		R_SetupShader_SetPermutationSoft(mode, permutation);
+@@ -2948,6 +2957,7 @@ void R_SetupShader_Surface(const vec3_t lightcolorbase, qboolean modellighting,
+ 				if (permutation & SHADERPERMUTATION_SHADOWMAPVSDCT    ) R_Mesh_TexBind(GL20TU_CUBEPROJECTION    , r_shadow_shadowmapvsdcttexture                      );
+ 			}
+ 		}
++#endif
+ 		break;
+ 	}
+ }
+@@ -3054,6 +3064,7 @@ void R_SetupShader_DeferredLight(const rtlight_t *rtlight)
+ 	case RENDERPATH_GLES1:
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		R_SetupShader_SetPermutationGLSL(mode, permutation);
+ 		DPSOFTRAST_Uniform3f(       DPSOFTRAST_UNIFORM_LightPosition            , viewlightorigin[0], viewlightorigin[1], viewlightorigin[2]);
+ 		DPSOFTRAST_UniformMatrix4fv(DPSOFTRAST_UNIFORM_ViewToLightM1            , 1, false, viewtolight16f);
+@@ -3072,6 +3083,7 @@ void R_SetupShader_DeferredLight(const rtlight_t *rtlight)
+ 		R_Mesh_TexBind(GL20TU_CUBE               , rsurface.rtlight->currentcubemap                    );
+ 		R_Mesh_TexBind(GL20TU_SHADOWMAP2D        , r_shadow_shadowmap2dtexture                         );
+ 		R_Mesh_TexBind(GL20TU_CUBEPROJECTION     , r_shadow_shadowmapvsdcttexture                      );
++#endif
+ 		break;
+ 	}
+ }
+@@ -5294,6 +5306,8 @@ void R_SetupView(qboolean allowwaterclippingplane)
+ 		R_Viewport_InitPerspective(&r_refdef.view.viewport, &r_refdef.view.matrix, r_refdef.view.x, vid.height - scaledheight - r_refdef.view.y, scaledwidth, scaledheight, r_refdef.view.frustum_x, r_refdef.view.frustum_y, r_refdef.nearclip, r_refdef.farclip, customclipplane);
+ 	R_Mesh_SetMainRenderTargets();
+ 	R_SetViewport(&r_refdef.view.viewport);
++
++#ifdef HAVE_DPSOFTRAST
+ 	if (r_refdef.view.useclipplane && allowwaterclippingplane && vid.renderpath == RENDERPATH_SOFT)
+ 	{
+ 		matrix4x4_t mvpmatrix, invmvpmatrix, invtransmvpmatrix;
+@@ -5304,6 +5318,7 @@ void R_SetupView(qboolean allowwaterclippingplane)
+ 		Matrix4x4_Transform4(&invtransmvpmatrix, plane, screenplane);
+ 		DPSOFTRAST_ClipPlane(screenplane[0], screenplane[1], screenplane[2], screenplane[3]);
+ 	}
++#endif
+ }
+ 
+ void R_EntityMatrix(const matrix4x4_t *matrix)
+@@ -5337,8 +5352,10 @@ void R_EntityMatrix(const matrix4x4_t *matrix)
+ 			qglLoadMatrixf(gl_modelview16f);CHECKGLERROR
+ 			break;
+ 		case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 			DPSOFTRAST_UniformMatrix4fv(DPSOFTRAST_UNIFORM_ModelViewProjectionMatrixM1, 1, false, gl_modelviewprojection16f);
+ 			DPSOFTRAST_UniformMatrix4fv(DPSOFTRAST_UNIFORM_ModelViewMatrixM1, 1, false, gl_modelview16f);
++#endif
+ 			break;
+ 		case RENDERPATH_GL20:
+ 		case RENDERPATH_GLES2:
+@@ -5830,7 +5847,10 @@ static void R_Water_ProcessPlanes(void)
+ 		}
+ 
+ 	}
+-	if(vid.renderpath==RENDERPATH_SOFT) DPSOFTRAST_ClipPlane(0, 0, 0, 1);
++#ifdef HAVE_DPSOFTRAST
++	if(vid.renderpath==RENDERPATH_SOFT)
++		DPSOFTRAST_ClipPlane(0, 0, 0, 1);
++#endif
+ 	r_waterstate.renderingscene = false;
+ 	r_refdef.view = originalview;
+ 	R_ResetViewRendering3D();
+@@ -6436,6 +6456,7 @@ static void R_BlendView(void)
+ 			Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 			break;
+ 		case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 			R_Mesh_PrepareVertices_Mesh_Arrays(4, r_screenvertex3f, NULL, NULL, NULL, NULL, r_bloomstate.screentexcoord2f, r_bloomstate.bloomtexcoord2f);
+ 			R_SetupShader_SetPermutationSoft(SHADERMODE_POSTPROCESS, permutation);
+ 			R_Mesh_TexBind(GL20TU_FIRST     , r_bloomstate.texture_screen);
+@@ -6450,6 +6471,7 @@ static void R_BlendView(void)
+ 			DPSOFTRAST_Uniform1f(DPSOFTRAST_UNIFORM_Saturation        , r_glsl_saturation.value);
+ 			DPSOFTRAST_Uniform2f(DPSOFTRAST_UNIFORM_PixelToScreenTexCoord, 1.0f/vid.width, 1.0f/vid.height);
+ 			DPSOFTRAST_Uniform4f(DPSOFTRAST_UNIFORM_BloomColorSubtract   , r_bloom_colorsubtract.value, r_bloom_colorsubtract.value, r_bloom_colorsubtract.value, 0.0f);
++#endif
+ 			break;
+ 		default:
+ 			break;
+diff --git a/gl_textures.c b/gl_textures.c
+index 45855d6..6f7ce64 100644
+--- a/gl_textures.c
++++ b/gl_textures.c
+@@ -346,8 +346,10 @@ void R_FreeTexture(rtexture_t *rt)
+ 		Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		if (glt->texnum)
+ 			DPSOFTRAST_Texture_Free(glt->texnum);
++#endif
+ 		break;
+ 	}
+ 
+@@ -545,11 +547,13 @@ static void GL_TextureMode_f (void)
+ 		Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		// change all the existing texture objects
+ 		for (pool = gltexturepoolchain;pool;pool = pool->next)
+ 			for (glt = pool->gltchain;glt;glt = glt->chain)
+ 				if (glt->texnum && (gl_filter_force || !(glt->flags & (TEXF_FORCENEAREST | TEXF_FORCELINEAR))))
+ 					DPSOFTRAST_Texture_Filter(glt->texnum, (glt->flags & TEXF_MIPMAP) ? dpsoftrast_filter_mipmap : dpsoftrast_filter_nomipmap);
++#endif
+ 		break;
+ 	}
+ }
+@@ -1138,7 +1142,9 @@ static void R_UploadPartialTexture(gltexture_t *glt, const unsigned char *data,
+ 		Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		DPSOFTRAST_Texture_UpdatePartial(glt->texnum, 0, data, fragx, fragy, fragwidth, fragheight);
++#endif
+ 		break;
+ 	}
+ }
+@@ -1443,6 +1449,7 @@ static void R_UploadFullTexture(gltexture_t *glt, const unsigned char *data)
+ 		Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		switch(glt->texturetype)
+ 		{
+ 		case GLTEXTURETYPE_2D:
+@@ -1491,6 +1498,7 @@ static void R_UploadFullTexture(gltexture_t *glt, const unsigned char *data)
+ 			DPSOFTRAST_Texture_Filter(glt->texnum, dpsoftrast_filter_mipmap);
+ 		else
+ 			DPSOFTRAST_Texture_Filter(glt->texnum, dpsoftrast_filter_nomipmap);
++#endif
+ 		break;
+ 	}
+ }
+@@ -1747,6 +1755,7 @@ static rtexture_t *R_SetupTexture(rtexturepool_t *rtexturepool, const char *iden
+ 		Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		{
+ 			int tflags = 0;
+ 			switch(textype)
+@@ -1767,6 +1776,7 @@ static rtexture_t *R_SetupTexture(rtexturepool_t *rtexturepool, const char *iden
+ 			if (glt->flags & TEXF_CLAMP) tflags |= DPSOFTRAST_TEXTURE_FLAG_CLAMPTOEDGE;
+ 			glt->texnum = DPSOFTRAST_Texture_New(tflags, glt->tilewidth, glt->tileheight, glt->tiledepth);
+ 		}
++#endif
+ 		break;
+ 	}
+ 
+@@ -2355,7 +2365,9 @@ rtexture_t *R_LoadTextureDDSFile(rtexturepool_t *rtexturepool, const char *filen
+ 		Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		glt->texnum = DPSOFTRAST_Texture_New(((glt->flags & TEXF_CLAMP) ? DPSOFTRAST_TEXTURE_FLAG_CLAMPTOEDGE : 0) | (dds_miplevels > 1 ? DPSOFTRAST_TEXTURE_FLAG_MIPMAP : 0), glt->tilewidth, glt->tileheight, glt->tiledepth);
++#endif
+ 		break;
+ 	}
+ 
+@@ -2404,12 +2416,14 @@ rtexture_t *R_LoadTextureDDSFile(rtexturepool_t *rtexturepool, const char *filen
+ 			Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 			break;
+ 		case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 			if (bytesperblock)
+ 				Con_DPrintf("FIXME SOFT %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 			else
+ 				DPSOFTRAST_Texture_UpdateFull(glt->texnum, mippixels);
+ 			// DPSOFTRAST calculates its own mipmaps
+ 			mip = dds_miplevels;
++#endif
+ 			break;
+ 		}
+ 		mippixels += mipsize;
+@@ -2481,6 +2495,7 @@ rtexture_t *R_LoadTextureDDSFile(rtexturepool_t *rtexturepool, const char *filen
+ 		Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ 		break;
+ 	case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 		if (glt->flags & TEXF_FORCELINEAR)
+ 			DPSOFTRAST_Texture_Filter(glt->texnum, DPSOFTRAST_TEXTURE_FILTER_LINEAR);
+ 		else if (glt->flags & TEXF_FORCENEAREST)
+@@ -2489,6 +2504,7 @@ rtexture_t *R_LoadTextureDDSFile(rtexturepool_t *rtexturepool, const char *filen
+ 			DPSOFTRAST_Texture_Filter(glt->texnum, dpsoftrast_filter_mipmap);
+ 		else
+ 			DPSOFTRAST_Texture_Filter(glt->texnum, dpsoftrast_filter_nomipmap);
++#endif
+ 		break;
+ 	}
+ 
+diff --git a/makefile b/makefile
+index 4115e43..2e6af46 100644
+--- a/makefile
++++ b/makefile
+@@ -40,6 +40,18 @@ else
+ 	CMD_RM=$(CMD_UNIXRM)
+ endif
+ 
++# CPU-specifics
++OBJ_CPU =
++
++ifeq ($(DP_MAKE_TARGET),mingw)
++	# MinGW is always x86
++	OBJ_CPU += $(OBJ_X86)
++else
++ifneq (,$(filter i%86 x86_64,$(DP_MACHINE)))
++	OBJ_CPU += $(OBJ_X86)
++endif
++endif
++
+ # 64bits AMD CPUs use another lib directory
+ ifeq ($(DP_MACHINE),x86_64)
+ 	UNIX_X11LIBPATH:=/usr/X11R6/lib64
+diff --git a/makefile.inc b/makefile.inc
+index 439b5b3..2d775d8 100644
+--- a/makefile.inc
++++ b/makefile.inc
+@@ -116,7 +116,6 @@ OBJ_COMMON= \
+ 	csprogs.o \
+ 	curves.o \
+ 	cvar.o \
+-	dpsoftrast.o \
+ 	dpvsimpledecode.o \
+ 	filematch.o \
+ 	fractalnoise.o \
+@@ -142,7 +141,6 @@ OBJ_COMMON= \
+ 	mdfour.o \
+ 	menu.o \
+ 	meshqueue.o \
+-	mod_skeletal_animatevertices_sse.o \
+ 	mod_skeletal_animatevertices_generic.o \
+ 	model_alias.o \
+ 	model_brush.o \
+@@ -179,11 +177,15 @@ OBJ_COMMON= \
+ 	world.o \
+ 	zone.o
+ 
++OBJ_X86 = \
++	dpsoftrast.o \
++	mod_skeletal_animatevertices_sse.o
++
+ # note that builddate.c is very intentionally not compiled to a .o before
+ # being linked, because it should be recompiled every time an executable is
+ # built to give the executable a proper date string
+-OBJ_SV= builddate.c sys_linux.o vid_null.o thread_null.o $(OBJ_SND_NULL) $(OBJ_NOCD) $(OBJ_COMMON)
+-OBJ_SDL= builddate.c sys_sdl.o vid_sdl.o thread_sdl.o $(OBJ_SND_COMMON) snd_sdl.o cd_sdl.o $(OBJ_COMMON)
++OBJ_SV= builddate.c sys_linux.o vid_null.o thread_null.o $(OBJ_SND_NULL) $(OBJ_NOCD) $(OBJ_COMMON) $(OBJ_CPU)
++OBJ_SDL= builddate.c sys_sdl.o vid_sdl.o thread_sdl.o $(OBJ_SND_COMMON) snd_sdl.o cd_sdl.o $(OBJ_COMMON) $(OBJ_CPU)
+ 
+ 
+ # Compilation
+@@ -231,7 +233,7 @@ LDFLAGS_RELEASE=$(OPTIM_RELEASE) -DSVNREVISION=`{ test -d .svn && svnversion; }
+ 
+ ##### UNIX specific variables #####
+ 
+-OBJ_GLX= builddate.c sys_linux.o vid_glx.o thread_pthread.o keysym2ucs.o $(OBJ_SOUND) $(OBJ_CD) $(OBJ_COMMON)
++OBJ_GLX= builddate.c sys_linux.o vid_glx.o thread_pthread.o keysym2ucs.o $(OBJ_SOUND) $(OBJ_CD) $(OBJ_COMMON) $(OBJ_CPU)
+ 
+ LDFLAGS_UNIXCOMMON=\
+ 	-lm \
+@@ -321,7 +323,7 @@ LDFLAGS_MACOSXCL=$(LDFLAGS_UNIXCOMMON) -ldl -framework IOKit -framework Carbon $
+ LDFLAGS_MACOSXSV=$(LDFLAGS_UNIXCOMMON) -ldl
+ LDFLAGS_MACOSXSDL=$(LDFLAGS_UNIXCOMMON) -ldl -framework IOKit $(SDLCONFIG_STATICLIBS) SDLMain.m
+ 
+-OBJ_AGL= builddate.c sys_linux.o vid_agl.o thread_null.o $(OBJ_SOUND) $(OBJ_CD) $(OBJ_COMMON)
++OBJ_AGL= builddate.c sys_linux.o vid_agl.o thread_null.o $(OBJ_SOUND) $(OBJ_CD) $(OBJ_COMMON) $(OBJ_CPU)
+ 
+ EXE_MACOSXCL=darkplaces-agl
+ EXE_MACOSXCLNEXUIZ=nexuiz-agl
+@@ -361,7 +363,7 @@ OBJ_WINCD=cd_win.o
+ #if you want no CD audio
+ #OBJ_WINCD=$(OBJ_NOCD)
+ 
+-OBJ_WGL= builddate.c sys_win.o vid_wgl.o thread_null.o $(OBJ_SND_WIN) $(OBJ_WINCD) $(OBJ_COMMON)
++OBJ_WGL= builddate.c sys_win.o vid_wgl.o thread_null.o $(OBJ_SND_WIN) $(OBJ_WINCD) $(OBJ_COMMON) $(OBJ_CPU)
+ 
+ # Link
+ # see LDFLAGS_WINCOMMON in makefile
+diff --git a/quakedef.h b/quakedef.h
+index 2310bc2..6427e03 100644
+--- a/quakedef.h
++++ b/quakedef.h
+@@ -493,6 +493,11 @@ qboolean Sys_HaveSSE2(void);
+ #define Sys_HaveSSE2() false
+ #endif
+ 
++#ifdef SSE_POSSIBLE
++/* The software rasterizer requires SSE */
++# define HAVE_DPSOFTRAST
++#endif
++
+ /// incremented every frame, never reset
+ extern int host_framecount;
+ /// not bounded in any way, changed at start of every frame, never reset
+diff --git a/vid_glx.c b/vid_glx.c
+index 9f142bb..a10198b 100644
+--- a/vid_glx.c
++++ b/vid_glx.c
+@@ -657,7 +657,9 @@ static void HandleEvents(void)
+ 				else
+ 					Con_DPrintf("Updating to ConfigureNotify resolution %dx%d\n", vid.width, vid.height);
+ 
++#ifdef HAVE_DPSOFTRAST
+ 				DPSOFTRAST_Flush();
++#endif
+ 
+ 				if(vid.softdepthpixels)
+ 					free(vid.softdepthpixels);
+@@ -898,6 +900,7 @@ void VID_Finish (void)
+ 	switch(vid.renderpath)
+ 	{
+ 		case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 			if(vidx11_shmevent >= 0) {
+ 				vidx11_ximage_pos = !vidx11_ximage_pos;
+ 				vid.softpixels = (unsigned int *) vidx11_ximage[vidx11_ximage_pos]->data;
+@@ -920,6 +923,7 @@ void VID_Finish (void)
+ 				DPSOFTRAST_Finish();
+ 				XPutImage(vidx11_display, win, vidx11_gc, vidx11_ximage[vidx11_ximage_pos], 0, 0, 0, 0, vid.width, vid.height);
+ 			}
++#endif
+ 			break;
+ 
+ 		case RENDERPATH_GL11:
+@@ -1003,6 +1007,7 @@ void VID_BuildGLXAttrib(int *attrib, qboolean stencil, qboolean stereobuffer, in
+ 	*attrib++ = None;
+ }
+ 
++#ifdef HAVE_DPSOFTRAST
+ qboolean VID_InitModeSoft(viddef_mode_t *mode)
+ {
+ 	int i, j;
+@@ -1300,6 +1305,8 @@ qboolean VID_InitModeSoft(viddef_mode_t *mode)
+ 
+ 	return true;
+ }
++#endif
++
+ qboolean VID_InitModeGL(viddef_mode_t *mode)
+ {
+ 	int i, j;
+@@ -1640,7 +1647,7 @@ qboolean VID_InitModeGL(viddef_mode_t *mode)
+ 
+ qboolean VID_InitMode(viddef_mode_t *mode)
+ {
+-#ifdef SSE_POSSIBLE
++#ifdef HAVE_DPSOFTRAST
+ 	if (vid_soft.integer)
+ 		return VID_InitModeSoft(mode);
+ 	else
+diff --git a/vid_sdl.c b/vid_sdl.c
+index 4bdeb98..0e86d39 100644
+--- a/vid_sdl.c
++++ b/vid_sdl.c
+@@ -2166,6 +2166,7 @@ extern cvar_t gl_info_version;
+ extern cvar_t gl_info_platform;
+ extern cvar_t gl_info_driver;
+ 
++#ifdef HAVE_DPSOFTRAST
+ qboolean VID_InitModeSoft(viddef_mode_t *mode)
+ {
+ #if SETVIDEOMODE
+@@ -2258,12 +2259,13 @@ qboolean VID_InitModeSoft(viddef_mode_t *mode)
+ #endif
+ 	return true;
+ }
++#endif
+ 
+ qboolean VID_InitMode(viddef_mode_t *mode)
+ {
+ 	if (!SDL_WasInit(SDL_INIT_VIDEO) && SDL_InitSubSystem(SDL_INIT_VIDEO) < 0)
+ 		Sys_Error ("Failed to init SDL video subsystem: %s", SDL_GetError());
+-#ifdef SSE_POSSIBLE
++#ifdef HAVE_DPSOFTRAST
+ 	if (vid_soft.integer)
+ 		return VID_InitModeSoft(mode);
+ 	else
+@@ -2367,6 +2369,7 @@ void VID_Finish (void)
+ #endif
+ 			break;
+ 		case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 			DPSOFTRAST_Finish();
+ #if SETVIDEOMODE
+ //		if (!r_test.integer)
+@@ -2381,6 +2384,7 @@ void VID_Finish (void)
+ 				SDL_UpdateWindowSurface(window);
+ 			}
+ #endif
++#endif
+ 			break;
+ 		case RENDERPATH_D3D9:
+ 		case RENDERPATH_D3D10:
+diff --git a/vid_shared.c b/vid_shared.c
+index c34f1c8..00d9bba 100644
+--- a/vid_shared.c
++++ b/vid_shared.c
+@@ -1610,7 +1610,7 @@ static dllhandle_t xinputdll_dll = NULL;
+ 
+ void VID_Shared_Init(void)
+ {
+-#ifdef SSE_POSSIBLE
++#ifdef HAVE_DPSOFTRAST
+ 	if (Sys_HaveSSE2())
+ 	{
+ 		Con_Printf("DPSOFTRAST available (SSE2 instructions detected)\n");
+@@ -1946,6 +1946,7 @@ size_t VID_SortModes(vid_mode_t *modes, size_t count, qboolean usebpp, qboolean
+ 	return count;
+ }
+ 
++#ifdef HAVE_DPSOFTRAST
+ void VID_Soft_SharedSetup(void)
+ {
+ 	gl_platform = "DPSOFTRAST";
+@@ -2011,3 +2012,4 @@ void VID_Soft_SharedSetup(void)
+ 	// clear to black (loading plaque will be seen over this)
+ 	GL_Clear(GL_COLOR_BUFFER_BIT, NULL, 1.0f, 128);
+ }
++#endif
+diff --git a/vid_wgl.c b/vid_wgl.c
+index 79ceeaa..ab37d4b 100644
+--- a/vid_wgl.c
++++ b/vid_wgl.c
+@@ -305,11 +305,13 @@ void VID_Finish (void)
+ 		case RENDERPATH_D3D11:
+ 			break;
+ 		case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ 			DPSOFTRAST_Finish();
+ //			baseDC = GetDC(mainwindow);
+ 			BitBlt(baseDC, 0, 0, vid.width, vid.height, vid_softhdc, 0, 0, SRCCOPY);
+ //			ReleaseDC(mainwindow, baseDC);
+ //			baseDC = NULL;
++#endif
+ 			break;
+ 		}
+ 	}
+@@ -1564,6 +1566,7 @@ qboolean VID_InitModeDX(viddef_mode_t *mode, int version)
+ }
+ #endif
+ 
++#ifdef HAVE_DPSOFTRAST
+ qboolean VID_InitModeSOFT(viddef_mode_t *mode)
+ {
+ 	int i;
+@@ -1843,10 +1846,11 @@ qboolean VID_InitModeSOFT(viddef_mode_t *mode)
+ 
+ 	return true;
+ }
++#endif
+ 
+ qboolean VID_InitMode(viddef_mode_t *mode)
+ {
+-#ifdef SSE_POSSIBLE
++#ifdef HAVE_DPSOFTRAST
+ 	if (vid_soft.integer)
+ 		return VID_InitModeSOFT(mode);
+ #endif
diff --git a/debian/patches/series b/debian/patches/series
index c4d17eb..bdb8e1e 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -15,4 +15,5 @@
 0015-Be-more-type-safe-when-calling-setjmp-call-the-same-.patch
 0016-Be-a-bit-more-type-safe-about-using-libpng.patch
 0017-Fix-various-typos-dont-don-t-doesnt-doesn-t-arguemen.patch
+0018-Don-t-build-SSE-only-objects-on-non-x86-CPUs.patch
 10_detect_gnu-kfreebsd.patch

-- 
DarkPlaces, a Quake engine



More information about the Pkg-games-commits mailing list