17485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn#ifndef _VKSPIRVASM_HPP 27485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn#define _VKSPIRVASM_HPP 37485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn/*------------------------------------------------------------------------- 47485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn * Vulkan CTS Framework 57485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn * -------------------- 67485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn * 77485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn * Copyright (c) 2015 Google Inc. 87485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn * 9978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * Licensed under the Apache License, Version 2.0 (the "License"); 10978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * you may not use this file except in compliance with the License. 11978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * You may obtain a copy of the License at 127485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn * 13978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * http://www.apache.org/licenses/LICENSE-2.0 147485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn * 15978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * Unless required by applicable law or agreed to in writing, software 16978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * distributed under the License is distributed on an "AS IS" BASIS, 17978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * See the License for the specific language governing permissions and 19978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * limitations under the License. 207485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn * 217485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn *//*! 227485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn * \file 237485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn * \brief SPIR-V assembly to binary. 247485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn *//*--------------------------------------------------------------------*/ 257485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn 267485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn#include "vkDefs.hpp" 277485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn#include "vkPrograms.hpp" 287485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn 293b9dcc5bfd3b622b8fa0a75d88d205a425dd3603Pyry Haulos#include <ostream> 303b9dcc5bfd3b622b8fa0a75d88d205a425dd3603Pyry Haulos 317485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszynnamespace vk 327485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn{ 337485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn 347485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn//! Assemble SPIR-V program. Will fail with NotSupportedError if compiler is not available. 353b9dcc5bfd3b622b8fa0a75d88d205a425dd3603Pyry Haulosbool assembleSpirV (const SpirVAsmSource* program, std::vector<deUint32>* dst, SpirVProgramInfo* buildInfo); 363b9dcc5bfd3b622b8fa0a75d88d205a425dd3603Pyry Haulos 373b9dcc5bfd3b622b8fa0a75d88d205a425dd3603Pyry Haulos//! Disassemble SPIR-V binary. Throws tcu::NotSupportedError if disassembler is not available 383b9dcc5bfd3b622b8fa0a75d88d205a425dd3603Pyry Haulosvoid disassembleSpirV (size_t binarySizeInWords, const deUint32* binary, std::ostream* dst); 397485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn 407e99a1155b6b262ff0728fe72ddb24898b7a7b6eDejan Mircevski//! Validate SPIR-V binary, returning true if validation succeeds. Will fail with NotSupportedError if compiler is not available. 413b9dcc5bfd3b622b8fa0a75d88d205a425dd3603Pyry Haulosbool validateSpirV (size_t binarySizeInWords, const deUint32* binary, std::ostream* infoLog); 427e99a1155b6b262ff0728fe72ddb24898b7a7b6eDejan Mircevski 437485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn} // vk 447485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn 457485f0bbab69ed556d54503e8f94bedc5b71175dAndrew Woloszyn#endif // _VKSPIRVASM_HPP 46