Hash :
97049c6a
Author :
Date :
2014-10-06T21:39:16
Enhance shader debug output glGetTranslatedShaderSourceANGLE() returns the glsl code, the initial translated hlsl code, the final translated hlsl code and the disassembly of the generated binary with the compiler configuration. This enhancement is only available if the define ANGLE_GENERATE_SHADER_DEBUG_INFO exists. This define is set in the debug configurations for the Windows platform. BUG=angle:751 Change-Id: I8b15e8b25fbb0c0575a73cc876bf8f1fa7ed142a Reviewed-on: https://chromium-review.googlesource.com/221059 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
//
// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// ShaderExecutable.h: Defines a renderer-agnostic class to contain shader
// executable implementation details.
#ifndef LIBGLESV2_RENDERER_SHADEREXECUTABLE_H_
#define LIBGLESV2_RENDERER_SHADEREXECUTABLE_H_
#include "common/angleutils.h"
#include "common/debug.h"
#include <vector>
#include <cstdint>
namespace rx
{
class ShaderExecutable
{
public:
ShaderExecutable(const void *function, size_t length)
: mFunctionBuffer(length)
{
memcpy(mFunctionBuffer.data(), function, length);
}
virtual ~ShaderExecutable() {}
const uint8_t *getFunction() const
{
return mFunctionBuffer.data();
}
size_t getLength() const
{
return mFunctionBuffer.size();
}
const std::string &getDebugInfo() const
{
return mDebugInfo;
}
void appendDebugInfo(const std::string &info)
{
mDebugInfo += info;
}
private:
DISALLOW_COPY_AND_ASSIGN(ShaderExecutable);
std::vector<uint8_t> mFunctionBuffer;
std::string mDebugInfo;
};
class UniformStorage
{
public:
UniformStorage(size_t initialSize)
: mSize(initialSize)
{
}
virtual ~UniformStorage() {}
size_t size() const { return mSize; }
private:
size_t mSize;
};
}
#endif // LIBGLESV2_RENDERER_SHADEREXECUTABLE_H_