* Copyright (c) 2015 The Khronos Group Inc.
* Copyright (c) 2015 Samsung Electronics Co., Ltd.
*
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and/or associated documentation files (the
- * "Materials"), to deal in the Materials without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Materials, and to
- * permit persons to whom the Materials are furnished to do so, subject to
- * the following conditions:
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
*
- * The above copyright notice(s) and this permission notice shall be included
- * in all copies or substantial portions of the Materials.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * The Materials are Confidential Information as defined by the
- * Khronos Membership Agreement until designated non-confidential by Khronos,
- * at which point this condition clause shall be removed.
- *
- * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*
*//*!
* \file
struct BlockLayoutEntry
{
BlockLayoutEntry (void)
- : size(0)
+ : size (0)
+ , blockDeclarationNdx (-1)
+ , bindingNdx (-1)
+ , instanceNdx (-1)
{
}
std::string name;
int size;
std::vector<int> activeUniformIndices;
+ int blockDeclarationNdx;
int bindingNdx;
int instanceNdx;
};
UniformLayoutEntry (void)
: type (glu::TYPE_LAST)
, size (0)
- , blockNdx (-1)
+ , blockLayoutNdx(-1)
, offset (-1)
, arrayStride (-1)
, matrixStride (-1)
std::string name;
glu::DataType type;
int size;
- int blockNdx;
+ int blockLayoutNdx;
int offset;
int arrayStride;
int matrixStride;
std::vector<BlockLayoutEntry> blocks;
std::vector<UniformLayoutEntry> uniforms;
- int getUniformIndex (const std::string& name) const;
- int getBlockIndex (const std::string& name) const;
+ int getUniformLayoutIndex (int blockDeclarationNdx, const std::string& name) const;
+ int getBlockLayoutIndex (int blockDeclarationNdx, int instanceNdx) const;
};
class UniformBlockCase : public vkt::TestCase
UniformBlockCase (tcu::TestContext& testCtx,
const std::string& name,
const std::string& description,
- BufferMode bufferMode);
+ BufferMode bufferMode,
+ MatrixLoadFlags matrixLoadFlag);
~UniformBlockCase (void);
virtual void initPrograms (vk::SourceCollections& programCollection) const;
BufferMode m_bufferMode;
ShaderInterface m_interface;
+ MatrixLoadFlags m_matrixLoadFlag;
private:
std::string m_vertShaderSource;