vktSpvAsmComputeShaderTestUtil.cpp revision ba23b9e1fccb231af89f3de3e9fff7d8f8055e51
121be639ab35b03f6d4d05e11fe662a7dd6bfee2bLei Zhang/*------------------------------------------------------------------------- 221be639ab35b03f6d4d05e11fe662a7dd6bfee2bLei Zhang * Vulkan Conformance Tests 321be639ab35b03f6d4d05e11fe662a7dd6bfee2bLei Zhang * ------------------------ 421be639ab35b03f6d4d05e11fe662a7dd6bfee2bLei Zhang * 521be639ab35b03f6d4d05e11fe662a7dd6bfee2bLei Zhang * Copyright (c) 2015 Google Inc. 621be639ab35b03f6d4d05e11fe662a7dd6bfee2bLei Zhang * 7978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * Licensed under the Apache License, Version 2.0 (the "License"); 8978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * you may not use this file except in compliance with the License. 9978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * You may obtain a copy of the License at 1021be639ab35b03f6d4d05e11fe662a7dd6bfee2bLei Zhang * 11978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * http://www.apache.org/licenses/LICENSE-2.0 1221be639ab35b03f6d4d05e11fe662a7dd6bfee2bLei Zhang * 13978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * Unless required by applicable law or agreed to in writing, software 14978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * distributed under the License is distributed on an "AS IS" BASIS, 15978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * See the License for the specific language governing permissions and 17978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * limitations under the License. 1821be639ab35b03f6d4d05e11fe662a7dd6bfee2bLei Zhang * 1921be639ab35b03f6d4d05e11fe662a7dd6bfee2bLei Zhang *//*! 2021be639ab35b03f6d4d05e11fe662a7dd6bfee2bLei Zhang * \file 2121be639ab35b03f6d4d05e11fe662a7dd6bfee2bLei Zhang * \brief Compute Shader Based Test Case Utility Structs/Functions 2221be639ab35b03f6d4d05e11fe662a7dd6bfee2bLei Zhang *//*--------------------------------------------------------------------*/ 2321be639ab35b03f6d4d05e11fe662a7dd6bfee2bLei Zhang 2421be639ab35b03f6d4d05e11fe662a7dd6bfee2bLei Zhang#include "vktSpvAsmComputeShaderTestUtil.hpp" 2521be639ab35b03f6d4d05e11fe662a7dd6bfee2bLei Zhang 2656bd1576eb438e10e8ccb22e17b08354fbf3bac7Lei Zhangnamespace vkt 2756bd1576eb438e10e8ccb22e17b08354fbf3bac7Lei Zhang{ 2856bd1576eb438e10e8ccb22e17b08354fbf3bac7Lei Zhangnamespace SpirVAssembly 2956bd1576eb438e10e8ccb22e17b08354fbf3bac7Lei Zhang{ 3056bd1576eb438e10e8ccb22e17b08354fbf3bac7Lei Zhang 31ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhangconst char* getComputeAsmShaderPreamble (void) 32ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang{ 33ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang return 34ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "OpCapability Shader\n" 35ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "OpMemoryModel Logical GLSL450\n" 36ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "OpEntryPoint GLCompute %main \"main\" %id\n" 37ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "OpExecutionMode %main LocalSize 1 1 1\n"; 38ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang} 3956bd1576eb438e10e8ccb22e17b08354fbf3bac7Lei Zhang 40ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhangconst char* getComputeAsmCommonTypes (void) 41ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang{ 42ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang return 43ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "%bool = OpTypeBool\n" 44ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "%void = OpTypeVoid\n" 45ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "%voidf = OpTypeFunction %void\n" 46ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "%u32 = OpTypeInt 32 0\n" 47ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "%i32 = OpTypeInt 32 1\n" 48ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "%f32 = OpTypeFloat 32\n" 49ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "%uvec3 = OpTypeVector %u32 3\n" 50ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "%fvec3 = OpTypeVector %f32 3\n" 51ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "%uvec3ptr = OpTypePointer Input %uvec3\n" 52ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "%i32ptr = OpTypePointer Uniform %i32\n" 53ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "%f32ptr = OpTypePointer Uniform %f32\n" 54ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "%i32arr = OpTypeRuntimeArray %i32\n" 55ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "%f32arr = OpTypeRuntimeArray %f32\n"; 56ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang} 5756bd1576eb438e10e8ccb22e17b08354fbf3bac7Lei Zhang 58ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhangconst char* getComputeAsmInputOutputBuffer (void) 59ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang{ 60ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang return 61ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "%buf = OpTypeStruct %f32arr\n" 62ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "%bufptr = OpTypePointer Uniform %buf\n" 63ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "%indata = OpVariable %bufptr Uniform\n" 64ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "%outdata = OpVariable %bufptr Uniform\n"; 65ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang} 6656bd1576eb438e10e8ccb22e17b08354fbf3bac7Lei Zhang 67ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhangconst char* getComputeAsmInputOutputBufferTraits (void) 68ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang{ 69ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang return 70ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "OpDecorate %buf BufferBlock\n" 71ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "OpDecorate %indata DescriptorSet 0\n" 72ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "OpDecorate %indata Binding 0\n" 73ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "OpDecorate %outdata DescriptorSet 0\n" 74ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "OpDecorate %outdata Binding 1\n" 75ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "OpDecorate %f32arr ArrayStride 4\n" 76ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang "OpMemberDecorate %buf 0 Offset 0\n"; 77ba23b9e1fccb231af89f3de3e9fff7d8f8055e51Lei Zhang} 7856bd1576eb438e10e8ccb22e17b08354fbf3bac7Lei Zhang 7956bd1576eb438e10e8ccb22e17b08354fbf3bac7Lei Zhang} // SpirVAssembly 8056bd1576eb438e10e8ccb22e17b08354fbf3bac7Lei Zhang} // vkt 81