namespace
{
-static const int GRID_SIZE = 90;
static const deUint32 MAX_RENDER_WIDTH = 128;
static const deUint32 MAX_RENDER_HEIGHT = 128;
static const tcu::Vec4 DEFAULT_CLEAR_COLOR = tcu::Vec4(0.125f, 0.25f, 0.5f, 1.0f);
ShaderRenderCaseInstance::ShaderRenderCaseInstance (Context& context)
: vkt::TestInstance (context)
, m_imageBackingMode (IMAGE_BACKING_MODE_REGULAR)
+ , m_quadGridSize (static_cast<deUint32>(GRID_SIZE_DEFAULT_FRAGMENT))
, m_sparseContext (createSparseContext())
, m_memAlloc (getAllocator())
, m_clearColor (DEFAULT_CLEAR_COLOR)
const ShaderEvaluator& evaluator,
const UniformSetup& uniformSetup,
const AttributeSetupFunc attribFunc,
- const ImageBackingMode imageBackingMode)
+ const ImageBackingMode imageBackingMode,
+ const deUint32 gridSize)
: vkt::TestInstance (context)
, m_imageBackingMode (imageBackingMode)
+ , m_quadGridSize (gridSize == static_cast<deUint32>(GRID_SIZE_DEFAULTS)
+ ? (isVertexCase
+ ? static_cast<deUint32>(GRID_SIZE_DEFAULT_VERTEX)
+ : static_cast<deUint32>(GRID_SIZE_DEFAULT_FRAGMENT))
+ : gridSize)
, m_sparseContext (createSparseContext())
, m_memAlloc (getAllocator())
, m_clearColor (DEFAULT_CLEAR_COLOR)
const ShaderEvaluator* evaluator,
const UniformSetup* uniformSetup,
const AttributeSetupFunc attribFunc,
- const ImageBackingMode imageBackingMode)
+ const ImageBackingMode imageBackingMode,
+ const deUint32 gridSize)
: vkt::TestInstance (context)
, m_imageBackingMode (imageBackingMode)
+ , m_quadGridSize (gridSize == static_cast<deUint32>(GRID_SIZE_DEFAULTS)
+ ? (isVertexCase
+ ? static_cast<deUint32>(GRID_SIZE_DEFAULT_VERTEX)
+ : static_cast<deUint32>(GRID_SIZE_DEFAULT_FRAGMENT))
+ : gridSize)
, m_sparseContext (createSparseContext())
, m_memAlloc (getAllocator())
, m_clearColor (DEFAULT_CLEAR_COLOR)
const int width = viewportSize.x();
const int height = viewportSize.y();
- m_quadGrid = de::MovePtr<QuadGrid>(new QuadGrid(m_isVertexCase ? GRID_SIZE : 4, width, height, getDefaultConstCoords(), m_userAttribTransforms, m_textures));
+ m_quadGrid = de::MovePtr<QuadGrid>(new QuadGrid(m_quadGridSize, width, height, getDefaultConstCoords(), m_userAttribTransforms, m_textures));
// Render result.
tcu::Surface resImage (width, height);
IMAGE_BACKING_MODE_SPARSE,
};
+ // Default wertex and fragment grid sizes are used by a large collection of tests
+ // to generate input sets. Some tests might change their behavior if the
+ // default grid size values are altered, so care should be taken to confirm that
+ // any changes to default values do not produce regressions.
+ // If a particular tests needs to use a different grid size value, rather than
+ // modifying the default grid size values for all tests, it is recommended that
+ // the test specifies the required grid size using the gridSize parameter in the
+ // ShaderRenderCaseInstance constuctor instead.
+ enum
+ {
+ GRID_SIZE_DEFAULTS = 0,
+ GRID_SIZE_DEFAULT_VERTEX = 90,
+ GRID_SIZE_DEFAULT_FRAGMENT = 4,
+ };
+
ShaderRenderCaseInstance (Context& context);
ShaderRenderCaseInstance (Context& context,
const bool isVertexCase,
const ShaderEvaluator& evaluator,
const UniformSetup& uniformSetup,
const AttributeSetupFunc attribFunc,
- const ImageBackingMode imageBackingMode = IMAGE_BACKING_MODE_REGULAR);
+ const ImageBackingMode imageBackingMode = IMAGE_BACKING_MODE_REGULAR,
+ const deUint32 gridSize = static_cast<deUint32>(GRID_SIZE_DEFAULTS));
virtual ~ShaderRenderCaseInstance (void);
virtual tcu::TestStatus iterate (void);
const ShaderEvaluator* evaluator,
const UniformSetup* uniformSetup,
const AttributeSetupFunc attribFunc,
- const ImageBackingMode imageBackingMode = IMAGE_BACKING_MODE_REGULAR);
+ const ImageBackingMode imageBackingMode = IMAGE_BACKING_MODE_REGULAR,
+ const deUint32 gridSize = static_cast<deUint32>(GRID_SIZE_DEFAULTS));
virtual void setup (void);
virtual void setupUniforms (const tcu::Vec4& constCoords);
bool isMultiSampling (void) const;
ImageBackingMode m_imageBackingMode;
+
+ uint32_t m_quadGridSize;
private:
struct SparseContext