Retrieve the shader model number instead of a shader model 3 support boolean.
TRAC #22072
Signed-off-by: Daniel Koch
Signed-off-by: Geoff Lang
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1495 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/renderer/Renderer.h b/src/libGLESv2/renderer/Renderer.h
index 5719ac7..4aee4e9 100644
--- a/src/libGLESv2/renderer/Renderer.h
+++ b/src/libGLESv2/renderer/Renderer.h
@@ -131,7 +131,7 @@
virtual float getTextureMaxAnisotropy() const = 0;
virtual bool getShareHandleSupport() const = 0;
- virtual bool getShaderModel3Support() const = 0;
+ virtual int getMajorShaderModel() const = 0;
virtual float getMaxPointSize() const = 0;
virtual int getMaxTextureWidth() const = 0;
virtual int getMaxTextureHeight() const = 0;
diff --git a/src/libGLESv2/renderer/Renderer11.cpp b/src/libGLESv2/renderer/Renderer11.cpp
index 9bd37ba..b8094a6 100644
--- a/src/libGLESv2/renderer/Renderer11.cpp
+++ b/src/libGLESv2/renderer/Renderer11.cpp
@@ -709,11 +709,15 @@
return false && !gl::perfActive();
}
-bool Renderer11::getShaderModel3Support() const
+int Renderer11::getMajorShaderModel() const
{
- // TODO
- UNIMPLEMENTED();
- return true;
+ switch (mFeatureLevel)
+ {
+ case D3D_FEATURE_LEVEL_11_0: return D3D11_SHADER_MAJOR_VERSION; // 5
+ case D3D_FEATURE_LEVEL_10_1:
+ case D3D_FEATURE_LEVEL_10_0: return D3D10_SHADER_MAJOR_VERSION; // 4
+ default: UNREACHABLE(); return 0;
+ }
}
float Renderer11::getMaxPointSize() const
diff --git a/src/libGLESv2/renderer/Renderer11.h b/src/libGLESv2/renderer/Renderer11.h
index af99636..d1e0974 100644
--- a/src/libGLESv2/renderer/Renderer11.h
+++ b/src/libGLESv2/renderer/Renderer11.h
@@ -101,7 +101,7 @@
virtual float getTextureMaxAnisotropy() const;
virtual bool getShareHandleSupport() const;
- virtual bool getShaderModel3Support() const;
+ virtual int getMajorShaderModel() const;
virtual float getMaxPointSize() const;
virtual int getMaxTextureWidth() const;
virtual int getMaxTextureHeight() const;
diff --git a/src/libGLESv2/renderer/Renderer9.cpp b/src/libGLESv2/renderer/Renderer9.cpp
index 7feb01b..176b0ec 100644
--- a/src/libGLESv2/renderer/Renderer9.cpp
+++ b/src/libGLESv2/renderer/Renderer9.cpp
@@ -1950,9 +1950,9 @@
return (mD3d9Ex != NULL) && !gl::perfActive();
}
-bool Renderer9::getShaderModel3Support() const
+int Renderer9::getMajorShaderModel() const
{
- return mDeviceCaps.PixelShaderVersion >= D3DPS_VERSION(3, 0);
+ return D3DSHADER_VERSION_MAJOR(mDeviceCaps.PixelShaderVersion);
}
float Renderer9::getMaxPointSize() const
diff --git a/src/libGLESv2/renderer/Renderer9.h b/src/libGLESv2/renderer/Renderer9.h
index 0c321c1..eca55e2 100644
--- a/src/libGLESv2/renderer/Renderer9.h
+++ b/src/libGLESv2/renderer/Renderer9.h
@@ -137,7 +137,7 @@
virtual float getTextureMaxAnisotropy() const;
virtual bool getShareHandleSupport() const;
- virtual bool getShaderModel3Support() const;
+ virtual int getMajorShaderModel() const;
virtual float getMaxPointSize() const;
virtual int getMaxTextureWidth() const;
virtual int getMaxTextureHeight() const;