rpcsx/rpcs3/Emu/RSX/Common/ShaderInterpreter.h
kd-11 2ed50ba263 rsx/interpreter: Improve instruction accuracy
- Fix DIV instruction
- Add EXP_TEX modifier
- Implement WPOS register read
- Swap 3D and Cubemap enums to match RSX ids
- Adds two extra instruction classes: flow control and packing control
- Implement remaining FP instructions with exception of the rare projected texture lookups
- Fix typo causing output color index > 0 to not work
- Fix KIL instruction
- Implement conditional vertex program writes
2020-04-30 15:02:59 +03:00

40 lines
950 B
C++

#pragma once
#include "Utilities/StrFmt.h"
namespace program_common
{
namespace interpreter
{
enum compiler_option
{
COMPILER_OPT_ENABLE_TEXTURES = 1,
COMPILER_OPT_ENABLE_DEPTH_EXPORT = 2,
COMPILER_OPT_ENABLE_F32_EXPORT = 4,
COMPILER_OPT_ENABLE_ALPHA_TEST_GE = 8,
COMPILER_OPT_ENABLE_ALPHA_TEST_G = 16,
COMPILER_OPT_ENABLE_ALPHA_TEST_LE = 32,
COMPILER_OPT_ENABLE_ALPHA_TEST_L = 64,
COMPILER_OPT_ENABLE_ALPHA_TEST_EQ = 128,
COMPILER_OPT_ENABLE_ALPHA_TEST_NE = 256,
COMPILER_OPT_ENABLE_FLOW_CTRL = 512,
COMPILER_OPT_ENABLE_PACKING = 1024,
COMPILER_OPT_ENABLE_KIL = 2048
};
static std::string get_vertex_interpreter()
{
const char* s =
#include "Interpreter/VertexInterpreter.glsl"
;
return s;
}
static std::string get_fragment_interpreter()
{
const char* s =
#include "Interpreter/FragmentInterpreter.glsl"
;
return s;
}
}
}