Commit a10c1c7e by Nicolas Capens

Pass all sampler state to getSRV.

BUG=angle:596 Change-Id: I4f97ea7c43bf12f5d986db39ae67d87074f98e82 Reviewed-on: https://chromium-review.googlesource.com/192051Tested-by: 's avatarNicolas Capens <nicolascapens@chromium.org> Reviewed-by: 's avatarShannon Woods <shannonwoods@chromium.org>
parent 73f51433
...@@ -641,8 +641,9 @@ void Renderer11::setTexture(gl::SamplerType type, int index, gl::Texture *textur ...@@ -641,8 +641,9 @@ void Renderer11::setTexture(gl::SamplerType type, int index, gl::Texture *textur
if (texStorage) if (texStorage)
{ {
TextureStorage11 *storage11 = TextureStorage11::makeTextureStorage11(texStorage->getStorageInstance()); TextureStorage11 *storage11 = TextureStorage11::makeTextureStorage11(texStorage->getStorageInstance());
textureSRV = storage11->getSRV(texture->getSwizzleRed(), texture->getSwizzleGreen(), texture->getSwizzleBlue(), gl::SamplerState samplerState;
texture->getSwizzleAlpha()); texture->getSamplerState(&samplerState);
textureSRV = storage11->getSRV(samplerState);
} }
// If we get NULL back from getSRV here, something went wrong in the texture class and we're unexpectedly // If we get NULL back from getSRV here, something went wrong in the texture class and we're unexpectedly
......
...@@ -497,15 +497,15 @@ RenderTarget *TextureStorage11_2D::getRenderTarget(int level) ...@@ -497,15 +497,15 @@ RenderTarget *TextureStorage11_2D::getRenderTarget(int level)
} }
} }
ID3D11ShaderResourceView *TextureStorage11_2D::getSRV(GLenum swizzleRed, GLenum swizzleGreen, GLenum swizzleBlue, GLenum swizzleAlpha) ID3D11ShaderResourceView *TextureStorage11_2D::getSRV(const gl::SamplerState &samplerState)
{ {
bool swizzleRequired = swizzleRed != GL_RED || swizzleGreen != GL_GREEN || swizzleBlue != GL_BLUE || bool swizzleRequired = samplerState.swizzleRed != GL_RED || samplerState.swizzleGreen != GL_GREEN ||
swizzleAlpha != GL_ALPHA; samplerState.swizzleBlue != GL_BLUE || samplerState.swizzleAlpha != GL_ALPHA;
ID3D11ShaderResourceView **resultSRV = swizzleRequired ? &mSwizzleSRV : &mSRV; ID3D11ShaderResourceView **resultSRV = swizzleRequired ? &mSwizzleSRV : &mSRV;
if (swizzleRequired) if (swizzleRequired)
{ {
verifySwizzleExists(swizzleRed, swizzleGreen, swizzleBlue, swizzleAlpha); verifySwizzleExists(samplerState.swizzleRed, samplerState.swizzleGreen, samplerState.swizzleBlue, samplerState.swizzleAlpha);
} }
if (!(*resultSRV)) if (!(*resultSRV))
...@@ -829,15 +829,15 @@ RenderTarget *TextureStorage11_Cube::getRenderTargetFace(GLenum faceTarget, int ...@@ -829,15 +829,15 @@ RenderTarget *TextureStorage11_Cube::getRenderTargetFace(GLenum faceTarget, int
} }
} }
ID3D11ShaderResourceView *TextureStorage11_Cube::getSRV(GLenum swizzleRed, GLenum swizzleGreen, GLenum swizzleBlue, GLenum swizzleAlpha) ID3D11ShaderResourceView *TextureStorage11_Cube::getSRV(const gl::SamplerState &samplerState)
{ {
bool swizzleRequired = swizzleRed != GL_RED || swizzleGreen != GL_GREEN || swizzleBlue != GL_BLUE || bool swizzleRequired = samplerState.swizzleRed != GL_RED || samplerState.swizzleGreen != GL_GREEN ||
swizzleAlpha != GL_ALPHA; samplerState.swizzleBlue != GL_BLUE || samplerState.swizzleAlpha != GL_ALPHA;
ID3D11ShaderResourceView **resultSRV = swizzleRequired ? &mSwizzleSRV : &mSRV; ID3D11ShaderResourceView **resultSRV = swizzleRequired ? &mSwizzleSRV : &mSRV;
if (swizzleRequired) if (swizzleRequired)
{ {
verifySwizzleExists(swizzleRed, swizzleGreen, swizzleBlue, swizzleAlpha); verifySwizzleExists(samplerState.swizzleRed, samplerState.swizzleGreen, samplerState.swizzleBlue, samplerState.swizzleAlpha);
} }
if (!(*resultSRV)) if (!(*resultSRV))
...@@ -1092,15 +1092,15 @@ ID3D11Resource *TextureStorage11_3D::getBaseTexture() const ...@@ -1092,15 +1092,15 @@ ID3D11Resource *TextureStorage11_3D::getBaseTexture() const
return mTexture; return mTexture;
} }
ID3D11ShaderResourceView *TextureStorage11_3D::getSRV(GLenum swizzleRed, GLenum swizzleGreen, GLenum swizzleBlue, GLenum swizzleAlpha) ID3D11ShaderResourceView *TextureStorage11_3D::getSRV(const gl::SamplerState &samplerState)
{ {
bool swizzleRequired = swizzleRed != GL_RED || swizzleGreen != GL_GREEN || swizzleBlue != GL_BLUE || bool swizzleRequired = samplerState.swizzleRed != GL_RED || samplerState.swizzleGreen != GL_GREEN ||
swizzleAlpha != GL_ALPHA; samplerState.swizzleBlue != GL_BLUE || samplerState.swizzleAlpha != GL_ALPHA;
ID3D11ShaderResourceView **resultSRV = swizzleRequired ? &mSwizzleSRV : &mSRV; ID3D11ShaderResourceView **resultSRV = swizzleRequired ? &mSwizzleSRV : &mSRV;
if (swizzleRequired) if (swizzleRequired)
{ {
verifySwizzleExists(swizzleRed, swizzleGreen, swizzleBlue, swizzleAlpha); verifySwizzleExists(samplerState.swizzleRed, samplerState.swizzleGreen, samplerState.swizzleBlue, samplerState.swizzleAlpha);
} }
if (!(*resultSRV)) if (!(*resultSRV))
...@@ -1442,15 +1442,15 @@ ID3D11Resource *TextureStorage11_2DArray::getBaseTexture() const ...@@ -1442,15 +1442,15 @@ ID3D11Resource *TextureStorage11_2DArray::getBaseTexture() const
return mTexture; return mTexture;
} }
ID3D11ShaderResourceView *TextureStorage11_2DArray::getSRV(GLenum swizzleRed, GLenum swizzleGreen, GLenum swizzleBlue, GLenum swizzleAlpha) ID3D11ShaderResourceView *TextureStorage11_2DArray::getSRV(const gl::SamplerState &samplerState)
{ {
bool swizzleRequired = swizzleRed != GL_RED || swizzleGreen != GL_GREEN || swizzleBlue != GL_BLUE || bool swizzleRequired = samplerState.swizzleRed != GL_RED || samplerState.swizzleGreen != GL_GREEN ||
swizzleAlpha != GL_ALPHA; samplerState.swizzleBlue != GL_BLUE || samplerState.swizzleAlpha != GL_ALPHA;
ID3D11ShaderResourceView **resultSRV = swizzleRequired ? &mSwizzleSRV : &mSRV; ID3D11ShaderResourceView **resultSRV = swizzleRequired ? &mSwizzleSRV : &mSRV;
if (swizzleRequired) if (swizzleRequired)
{ {
verifySwizzleExists(swizzleRed, swizzleGreen, swizzleBlue, swizzleAlpha); verifySwizzleExists(samplerState.swizzleRed, samplerState.swizzleGreen, samplerState.swizzleBlue, samplerState.swizzleAlpha);
} }
if (!(*resultSRV)) if (!(*resultSRV))
......
...@@ -33,7 +33,7 @@ class TextureStorage11 : public TextureStorage ...@@ -33,7 +33,7 @@ class TextureStorage11 : public TextureStorage
UINT getBindFlags() const; UINT getBindFlags() const;
virtual ID3D11Resource *getBaseTexture() const = 0; virtual ID3D11Resource *getBaseTexture() const = 0;
virtual ID3D11ShaderResourceView *getSRV(GLenum swizzleRed, GLenum swizzleGreen, GLenum swizzleBlue, GLenum swizzleAlpha) = 0; virtual ID3D11ShaderResourceView *getSRV(const gl::SamplerState &samplerState) = 0;
virtual RenderTarget *getRenderTarget(int level) { return NULL; } virtual RenderTarget *getRenderTarget(int level) { return NULL; }
virtual RenderTarget *getRenderTargetFace(GLenum faceTarget, int level) { return NULL; } virtual RenderTarget *getRenderTargetFace(GLenum faceTarget, int level) { return NULL; }
virtual RenderTarget *getRenderTargetLayer(int mipLevel, int layer) { return NULL; } virtual RenderTarget *getRenderTargetLayer(int mipLevel, int layer) { return NULL; }
...@@ -117,7 +117,7 @@ class TextureStorage11_2D : public TextureStorage11 ...@@ -117,7 +117,7 @@ class TextureStorage11_2D : public TextureStorage11
static TextureStorage11_2D *makeTextureStorage11_2D(TextureStorage *storage); static TextureStorage11_2D *makeTextureStorage11_2D(TextureStorage *storage);
virtual ID3D11Resource *getBaseTexture() const; virtual ID3D11Resource *getBaseTexture() const;
virtual ID3D11ShaderResourceView *getSRV(GLenum swizzleRed, GLenum swizzleGreen, GLenum swizzleBlue, GLenum swizzleAlpha); virtual ID3D11ShaderResourceView *getSRV(const gl::SamplerState &samplerState);
virtual RenderTarget *getRenderTarget(int level); virtual RenderTarget *getRenderTarget(int level);
virtual void generateMipmap(int level); virtual void generateMipmap(int level);
...@@ -152,7 +152,7 @@ class TextureStorage11_Cube : public TextureStorage11 ...@@ -152,7 +152,7 @@ class TextureStorage11_Cube : public TextureStorage11
static TextureStorage11_Cube *makeTextureStorage11_Cube(TextureStorage *storage); static TextureStorage11_Cube *makeTextureStorage11_Cube(TextureStorage *storage);
virtual ID3D11Resource *getBaseTexture() const; virtual ID3D11Resource *getBaseTexture() const;
virtual ID3D11ShaderResourceView *getSRV(GLenum swizzleRed, GLenum swizzleGreen, GLenum swizzleBlue, GLenum swizzleAlpha); virtual ID3D11ShaderResourceView *getSRV(const gl::SamplerState &samplerState);
virtual RenderTarget *getRenderTargetFace(GLenum faceTarget, int level); virtual RenderTarget *getRenderTargetFace(GLenum faceTarget, int level);
virtual void generateMipmap(int faceIndex, int level); virtual void generateMipmap(int faceIndex, int level);
...@@ -188,7 +188,7 @@ class TextureStorage11_3D : public TextureStorage11 ...@@ -188,7 +188,7 @@ class TextureStorage11_3D : public TextureStorage11
static TextureStorage11_3D *makeTextureStorage11_3D(TextureStorage *storage); static TextureStorage11_3D *makeTextureStorage11_3D(TextureStorage *storage);
virtual ID3D11Resource *getBaseTexture() const; virtual ID3D11Resource *getBaseTexture() const;
virtual ID3D11ShaderResourceView *getSRV(GLenum swizzleRed, GLenum swizzleGreen, GLenum swizzleBlue, GLenum swizzleAlpha); virtual ID3D11ShaderResourceView *getSRV(const gl::SamplerState &samplerState);
virtual RenderTarget *getRenderTarget(int mipLevel); virtual RenderTarget *getRenderTarget(int mipLevel);
virtual RenderTarget *getRenderTargetLayer(int mipLevel, int layer); virtual RenderTarget *getRenderTargetLayer(int mipLevel, int layer);
...@@ -230,7 +230,7 @@ class TextureStorage11_2DArray : public TextureStorage11 ...@@ -230,7 +230,7 @@ class TextureStorage11_2DArray : public TextureStorage11
static TextureStorage11_2DArray *makeTextureStorage11_2DArray(TextureStorage *storage); static TextureStorage11_2DArray *makeTextureStorage11_2DArray(TextureStorage *storage);
virtual ID3D11Resource *getBaseTexture() const; virtual ID3D11Resource *getBaseTexture() const;
virtual ID3D11ShaderResourceView *getSRV(GLenum swizzleRed, GLenum swizzleGreen, GLenum swizzleBlue, GLenum swizzleAlpha); virtual ID3D11ShaderResourceView *getSRV(const gl::SamplerState &samplerState);
virtual RenderTarget *getRenderTargetLayer(int mipLevel, int layer); virtual RenderTarget *getRenderTargetLayer(int mipLevel, int layer);
virtual void generateMipmap(int level); virtual void generateMipmap(int level);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment