Fix build when SSE2 is not available.

Although SSE2 support is detected at runtime it still may not be
available at build time, so we have to ensure it only uses SSE2
when it is available at build time too.

Change-Id: I86c45a6466ab4cec79aa0f62b0d5230a78ad825a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
This commit is contained in:
Andy Shaw 2012-11-28 15:38:58 +01:00 committed by The Qt Project
parent 27748e588a
commit 5e12f9e7b3
3 changed files with 55 additions and 1 deletions

View File

@ -378,11 +378,13 @@ void Image::loadData(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height
switch (mInternalFormat)
{
case GL_ALPHA8_EXT:
#if defined(__SSE2__)
if (supportsSSE2())
{
loadAlphaDataSSE2(width, height, inputPitch, input, locked.Pitch, locked.pBits);
}
else
#endif
{
loadAlphaData(width, height, inputPitch, input, locked.Pitch, locked.pBits);
}
@ -418,11 +420,13 @@ void Image::loadData(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height
loadRGB565Data(width, height, inputPitch, input, locked.Pitch, locked.pBits);
break;
case GL_RGBA8_OES:
#if defined(__SSE2__)
if (supportsSSE2())
{
loadRGBAUByteDataSSE2(width, height, inputPitch, input, locked.Pitch, locked.pBits);
}
else
#endif
{
loadRGBAUByteData(width, height, inputPitch, input, locked.Pitch, locked.pBits);
}

View File

@ -0,0 +1,49 @@
From 45a06cc846dbe451bf42c5b3f617729f208743b1 Mon Sep 17 00:00:00 2001
From: Andy Shaw <andy.shaw@digia.com>
Date: Wed, 28 Nov 2012 15:38:58 +0100
Subject: [PATCH] Fix build when SSE2 is not available.
Although SSE2 support is detected at runtime it still may not be
available at build time, so we have to ensure it only uses SSE2
when it is available at build time too.
Change-Id: I86c45a6466ab4cec79aa0f62b0d5230a78ad825a
---
src/3rdparty/angle/src/libGLESv2/Texture.cpp | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/src/3rdparty/angle/src/libGLESv2/Texture.cpp b/src/3rdparty/angle/src/libGLESv2/Texture.cpp
index af430bf..0ea475d 100644
--- a/src/3rdparty/angle/src/libGLESv2/Texture.cpp
+++ b/src/3rdparty/angle/src/libGLESv2/Texture.cpp
@@ -378,11 +378,13 @@ void Image::loadData(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height
switch (mInternalFormat)
{
case GL_ALPHA8_EXT:
+#if defined(__SSE2__)
if (supportsSSE2())
{
loadAlphaDataSSE2(width, height, inputPitch, input, locked.Pitch, locked.pBits);
}
else
+#endif
{
loadAlphaData(width, height, inputPitch, input, locked.Pitch, locked.pBits);
}
@@ -418,11 +420,13 @@ void Image::loadData(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height
loadRGB565Data(width, height, inputPitch, input, locked.Pitch, locked.pBits);
break;
case GL_RGBA8_OES:
+#if defined(__SSE2__)
if (supportsSSE2())
{
loadRGBAUByteDataSSE2(width, height, inputPitch, input, locked.Pitch, locked.pBits);
}
else
+#endif
{
loadRGBAUByteData(width, height, inputPitch, input, locked.Pitch, locked.pBits);
}
--
1.7.9.msysgit.0

View File

@ -62,10 +62,11 @@ SOURCES += \
$$ANGLE_DIR/src/libGLESv2/ResourceManager.cpp \
$$ANGLE_DIR/src/libGLESv2/Shader.cpp \
$$ANGLE_DIR/src/libGLESv2/Texture.cpp \
$$ANGLE_DIR/src/libGLESv2/TextureSSE2.cpp \
$$ANGLE_DIR/src/libGLESv2/utilities.cpp \
$$ANGLE_DIR/src/libGLESv2/VertexDataManager.cpp
SSE2_SOURCES += $$ANGLE_DIR/src/libGLESv2/TextureSSE2.cpp
float_converter.target = float_converter
float_converter.commands = python $$ANGLE_DIR/src/libGLESv2/Float16ToFloat32.py \
> $$ANGLE_DIR/src/libGLESv2/Float16ToFloat32.cpp