struct TextureShadowCommonTestCaseParameters
{
- TextureShadowCommonTestCaseParameters (void);
- Sampler::CompareMode compareOp;
+ TextureShadowCommonTestCaseParameters (void);
+ Sampler::CompareMode compareOp;
+ TextureBinding::ImageBackingMode backingMode;
};
TextureShadowCommonTestCaseParameters::TextureShadowCommonTestCaseParameters (void)
- : compareOp (Sampler::COMPAREMODE_EQUAL)
+ : compareOp (Sampler::COMPAREMODE_EQUAL)
+ , backingMode (TextureBinding::IMAGE_BACKING_MODE_REGULAR)
{
}
// Upload.
for (std::vector<TestTexture2DSp>::iterator i = m_textures.begin(); i != m_textures.end(); ++i)
{
- m_renderer.add2DTexture(*i);
+ m_renderer.add2DTexture(*i, m_testParameters.backingMode);
}
// Compute cases.
// Upload.
for (vector<TestTextureCubeSp>::iterator i = m_textures.begin(); i != m_textures.end(); i++)
{
- m_renderer.addCubeTexture(*i);
+ m_renderer.addCubeTexture(*i, m_testParameters.backingMode);
}
// Compute cases
// Upload.
for (std::vector<TestTexture2DArraySp>::iterator i = m_textures.begin(); i != m_textures.end(); ++i)
{
- m_renderer.add2DArrayTexture(*i);
+ m_renderer.add2DArrayTexture(*i, m_testParameters.backingMode);
}
// Compute cases.
static const struct
{
- const char* name;
- const VkFormat format;
+ const char* name;
+ const TextureBinding::ImageBackingMode backingMode;
+ } backingModes[] =
+ {
+ { "", TextureBinding::IMAGE_BACKING_MODE_REGULAR },
+ { "sparse_", TextureBinding::IMAGE_BACKING_MODE_SPARSE }
+ };
+
+ static const struct
+ {
+ const char* name;
+ const VkFormat format;
} formats[] =
{
{ "d16_unorm", VK_FORMAT_D16_UNORM },
static const struct
{
- const char* name;
- const Sampler::FilterMode minFilter;
- const Sampler::FilterMode magFilter;
+ const char* name;
+ const Sampler::FilterMode minFilter;
+ const Sampler::FilterMode magFilter;
} filters[] =
{
{ "nearest", Sampler::NEAREST, Sampler::NEAREST },
static const struct
{
- const char* name;
- const Sampler::CompareMode op;
+ const char* name;
+ const Sampler::CompareMode op;
} compareOp[] =
{
{ "less_or_equal", Sampler::COMPAREMODE_LESS_OR_EQUAL },
{
for (int formatNdx = 0; formatNdx < DE_LENGTH_OF_ARRAY(formats); formatNdx++)
{
- const string name = string(compareOp[compareNdx].name) + "_" + formats[formatNdx].name;
- Texture2DShadowTestCaseParameters testParameters;
-
- testParameters.minFilter = filters[filterNdx].minFilter;
- testParameters.magFilter = filters[filterNdx].magFilter;
- testParameters.format = formats[formatNdx].format;
- testParameters.compareOp = compareOp[compareNdx].op;
- testParameters.wrapS = Sampler::REPEAT_GL;
- testParameters.wrapT = Sampler::REPEAT_GL;
- testParameters.width = 32;
- testParameters.height = 64;
-
- testParameters.programs.push_back(PROGRAM_2D_SHADOW);
-
- filterGroup->addChild(new TextureTestCase<Texture2DShadowTestInstance>(testCtx, name.c_str(), "", testParameters));
+ for (int backingNdx = 0; backingNdx < DE_LENGTH_OF_ARRAY(backingModes); backingNdx++)
+ {
+ const string name = string(backingModes[backingNdx].name) + compareOp[compareNdx].name + "_" + formats[formatNdx].name;
+ Texture2DShadowTestCaseParameters testParameters;
+
+ testParameters.minFilter = filters[filterNdx].minFilter;
+ testParameters.magFilter = filters[filterNdx].magFilter;
+ testParameters.format = formats[formatNdx].format;
+ testParameters.backingMode = backingModes[backingNdx].backingMode;
+ testParameters.compareOp = compareOp[compareNdx].op;
+ testParameters.wrapS = Sampler::REPEAT_GL;
+ testParameters.wrapT = Sampler::REPEAT_GL;
+ testParameters.width = 32;
+ testParameters.height = 64;
+
+ testParameters.programs.push_back(PROGRAM_2D_SHADOW);
+
+ filterGroup->addChild(new TextureTestCase<Texture2DShadowTestInstance>(testCtx, name.c_str(), "", testParameters));
+ }
}
}
{
for (int formatNdx = 0; formatNdx < DE_LENGTH_OF_ARRAY(formats); formatNdx++)
{
- const string name = string(compareOp[compareNdx].name) + "_" + formats[formatNdx].name;
- TextureCubeShadowTestCaseParameters testParameters;
-
- testParameters.minFilter = filters[filterNdx].minFilter;
- testParameters.magFilter = filters[filterNdx].magFilter;
- testParameters.format = formats[formatNdx].format;
- testParameters.compareOp = compareOp[compareNdx].op;
- testParameters.wrapS = Sampler::REPEAT_GL;
- testParameters.wrapT = Sampler::REPEAT_GL;
- testParameters.size = 32;
-
- testParameters.programs.push_back(PROGRAM_CUBE_SHADOW);
-
- filterGroup->addChild(new TextureTestCase<TextureCubeShadowTestInstance>(testCtx, name.c_str(), "", testParameters));
+ for (int backingNdx = 0; backingNdx < DE_LENGTH_OF_ARRAY(backingModes); backingNdx++)
+ {
+ const string name = string(backingModes[backingNdx].name) + compareOp[compareNdx].name + "_" + formats[formatNdx].name;
+ TextureCubeShadowTestCaseParameters testParameters;
+
+ testParameters.minFilter = filters[filterNdx].minFilter;
+ testParameters.magFilter = filters[filterNdx].magFilter;
+ testParameters.format = formats[formatNdx].format;
+ testParameters.backingMode = backingModes[backingNdx].backingMode;
+ testParameters.compareOp = compareOp[compareNdx].op;
+ testParameters.wrapS = Sampler::REPEAT_GL;
+ testParameters.wrapT = Sampler::REPEAT_GL;
+ testParameters.size = 32;
+
+ testParameters.programs.push_back(PROGRAM_CUBE_SHADOW);
+
+ filterGroup->addChild(new TextureTestCase<TextureCubeShadowTestInstance>(testCtx, name.c_str(), "", testParameters));
+ }
}
}
{
for (int formatNdx = 0; formatNdx < DE_LENGTH_OF_ARRAY(formats); formatNdx++)
{
- const string name = string(compareOp[compareNdx].name) + "_" + formats[formatNdx].name;
- Texture2DArrayShadowTestCaseParameters testParameters;
-
- testParameters.minFilter = filters[filterNdx].minFilter;
- testParameters.magFilter = filters[filterNdx].magFilter;
- testParameters.format = formats[formatNdx].format;
- testParameters.compareOp = compareOp[compareNdx].op;
- testParameters.wrapS = Sampler::REPEAT_GL;
- testParameters.wrapT = Sampler::REPEAT_GL;
- testParameters.width = 32;
- testParameters.height = 64;
- testParameters.numLayers = 8;
-
- testParameters.programs.push_back(PROGRAM_2D_ARRAY_SHADOW);
-
- filterGroup->addChild(new TextureTestCase<Texture2DArrayShadowTestInstance>(testCtx, name.c_str(), "", testParameters));
+ for (int backingNdx = 0; backingNdx < DE_LENGTH_OF_ARRAY(backingModes); backingNdx++)
+ {
+ const string name = string(backingModes[backingNdx].name) + compareOp[compareNdx].name + "_" + formats[formatNdx].name;
+ Texture2DArrayShadowTestCaseParameters testParameters;
+
+ testParameters.minFilter = filters[filterNdx].minFilter;
+ testParameters.magFilter = filters[filterNdx].magFilter;
+ testParameters.format = formats[formatNdx].format;
+ testParameters.backingMode = backingModes[backingNdx].backingMode;
+ testParameters.compareOp = compareOp[compareNdx].op;
+ testParameters.wrapS = Sampler::REPEAT_GL;
+ testParameters.wrapT = Sampler::REPEAT_GL;
+ testParameters.width = 32;
+ testParameters.height = 64;
+ testParameters.numLayers = 8;
+
+ testParameters.programs.push_back(PROGRAM_2D_ARRAY_SHADOW);
+
+ filterGroup->addChild(new TextureTestCase<Texture2DArrayShadowTestInstance>(testCtx, name.c_str(), "", testParameters));
+ }
}
}