Lines Matching refs:binary
65 ProgramBinary::ProgramBinary (ProgramFormat format, size_t binarySize, const deUint8* binary)
67 , m_binary (binary, binary+binarySize)
86 bool isSaneSpirVBinary (const ProgramBinary& binary)
93 DE_ASSERT(binary.getFormat() == PROGRAM_FORMAT_SPIRV);
95 if (binary.getSize() % sizeof(deUint32) != 0)
98 if (binary.getSize() < sizeof(deUint32))
101 if (*(const deUint32*)binary.getBinary() != spirvMagicBytes)
107 void optimizeCompiledBinary (vector<deUint32>& binary, int optimizationRecipe, const SpirvVersion spirvVersion)
141 const bool ok = optimizer.Run(binary.data(), binary.size(), &binary, optimizer_options);
147 ProgramBinary* createProgramBinaryFromSpirV (const vector<deUint32>& binary)
149 DE_ASSERT(!binary.empty());
152 return new ProgramBinary(PROGRAM_FORMAT_SPIRV, binary.size()*sizeof(deUint32), (const deUint8*)&binary[0]);
159 void validateCompiledBinary(const vector<deUint32>& binary, glu::ShaderProgramInfo* buildInfo, const SpirvValidatorOptions& options)
163 if (!validateSpirV(binary.size(), &binary[0], &validationLog, options))
168 TCU_THROW(InternalError, "Validation failed for compiled SPIR-V binary");
172 void validateCompiledBinary(const vector<deUint32>& binary, SpirVProgramInfo* buildInfo, const SpirvValidatorOptions& options)
176 if (!validateSpirV(binary.size(), &binary[0], &validationLog, options))
181 TCU_THROW(InternalError, "Validation failed for compiled SPIR-V binary");
524 void shadercacheSave (const vk::ProgramBinary* binary, const std::string& shaderstring, const char* shaderCacheFilename, deUint32 hash)
526 if (binary == 0)
528 deInt32 format = binary->getFormat();
529 deUint32 length = (deUint32)binary->getSize();
532 const deUint8* bin = binary->getBinary();
557 if (ok) fseek(file, cachedLength, SEEK_CUR); // skip binary
642 vector<deUint32> binary;
704 stripSpirVDebugInfo(nonStrippedBinary.size(), &nonStrippedBinary[0], &binary);
705 TCU_CHECK_INTERNAL(!binary.empty());
710 validateCompiledBinary(binary, buildInfo, program.buildOptions.getSpirvValidatorOptions());
711 optimizeCompiledBinary(binary, optimizationRecipe, spirvVersion);
716 validateCompiledBinary(binary, buildInfo, program.buildOptions.getSpirvValidatorOptions());
719 res = createProgramBinaryFromSpirV(binary);
730 vector<deUint32> binary;
792 stripSpirVDebugInfo(nonStrippedBinary.size(), &nonStrippedBinary[0], &binary);
793 TCU_CHECK_INTERNAL(!binary.empty());
798 validateCompiledBinary(binary, buildInfo, program.buildOptions.getSpirvValidatorOptions());
799 optimizeCompiledBinary(binary, optimizationRecipe, spirvVersion);
804 validateCompiledBinary(binary, buildInfo, program.buildOptions.getSpirvValidatorOptions());
807 res = createProgramBinaryFromSpirV(binary);
820 vector<deUint32> binary;
858 if (!assembleSpirV(&program, &binary, buildInfo, spirvVersion))
863 validateCompiledBinary(binary, buildInfo, program.buildOptions.getSpirvValidatorOptions());
864 optimizeCompiledBinary(binary, optimizationRecipe, spirvVersion);
869 validateCompiledBinary(binary, buildInfo, program.buildOptions.getSpirvValidatorOptions());
872 res = createProgramBinaryFromSpirV(binary);
916 Move<VkShaderModule> createShaderModule (const DeviceInterface& deviceInterface, VkDevice device, const ProgramBinary& binary, VkShaderModuleCreateFlags flags)
918 if (binary.getFormat() == PROGRAM_FORMAT_SPIRV)
925 (deUintptr)binary.getSize(),
926 (const deUint32*)binary.getBinary(),
929 binary.setUsed();
1028 SpirvVersion extractSpirvVersion (const ProgramBinary& binary)
1032 if (binary.getFormat() != PROGRAM_FORMAT_SPIRV)
1035 if (!isSaneSpirVBinary(binary) || binary.getSize() < sizeof(SpirvBinaryHeader))
1045 const SpirvBinaryHeader* header = reinterpret_cast<const SpirvBinaryHeader*>(binary.getBinary());
1060 default: TCU_THROW(InternalError, "Unknown SPIR-V version detected in binary");