mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
wip
This commit is contained in:
parent
92d73e3b03
commit
200c25bcc9
3 changed files with 42 additions and 1 deletions
|
@ -120,3 +120,23 @@ void GLSLShaderCompat::SetupForVulkan() {
|
||||||
forceMatrix4x4 = false;
|
forceMatrix4x4 = false;
|
||||||
coefsFromBuffers = true;
|
coefsFromBuffers = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void GLSLShaderCompat::SetupForD3D11() {
|
||||||
|
fragColor0 = "fragColor0";
|
||||||
|
fragColor1 = "fragColor1";
|
||||||
|
varying_fs = "in";
|
||||||
|
varying_vs = "out";
|
||||||
|
attribute = "in";
|
||||||
|
bitwiseOps = true;
|
||||||
|
framebufferFetchExtension = nullptr;
|
||||||
|
gles = false;
|
||||||
|
glslES30 = true;
|
||||||
|
glslVersionNumber = 450;
|
||||||
|
lastFragData = nullptr;
|
||||||
|
texture = "texture";
|
||||||
|
texelFetch = "texelFetch";
|
||||||
|
d3d11 = true;
|
||||||
|
forceMatrix4x4 = false;
|
||||||
|
coefsFromBuffers = true;
|
||||||
|
}
|
||||||
|
|
|
@ -30,6 +30,8 @@ enum ShaderLanguage {
|
||||||
GLSL_VULKAN,
|
GLSL_VULKAN,
|
||||||
HLSL_DX9,
|
HLSL_DX9,
|
||||||
HLSL_D3D11,
|
HLSL_D3D11,
|
||||||
|
|
||||||
|
HLSL_D3D11_TEST, // temporary
|
||||||
};
|
};
|
||||||
|
|
||||||
enum DebugShaderType {
|
enum DebugShaderType {
|
||||||
|
@ -155,8 +157,10 @@ struct GLSLShaderCompat {
|
||||||
bool bitwiseOps;
|
bool bitwiseOps;
|
||||||
bool forceMatrix4x4;
|
bool forceMatrix4x4;
|
||||||
bool coefsFromBuffers;
|
bool coefsFromBuffers;
|
||||||
|
bool d3d11;
|
||||||
|
|
||||||
void SetupForVulkan();
|
void SetupForVulkan();
|
||||||
|
void SetupForD3D11();
|
||||||
};
|
};
|
||||||
|
|
||||||
// PSP vertex format.
|
// PSP vertex format.
|
||||||
|
|
|
@ -40,6 +40,13 @@ bool GenerateFShader(FShaderID id, char *buffer, ShaderLanguage lang, std::strin
|
||||||
case ShaderLanguage::GLSL_300:
|
case ShaderLanguage::GLSL_300:
|
||||||
// TODO: Need a device - except that maybe glslang could be used to verify these ....
|
// TODO: Need a device - except that maybe glslang could be used to verify these ....
|
||||||
return false;
|
return false;
|
||||||
|
case ShaderLanguage::HLSL_D3D11_TEST:
|
||||||
|
{
|
||||||
|
GLSLShaderCompat compat{};
|
||||||
|
compat.SetupForVulkan();
|
||||||
|
uint64_t uniformMask;
|
||||||
|
return GenerateFragmentShaderGLSL(id, buffer, compat, &uniformMask, errorString);
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -62,6 +69,14 @@ bool GenerateVShader(VShaderID id, char *buffer, ShaderLanguage lang, std::strin
|
||||||
uint64_t uniformMask;
|
uint64_t uniformMask;
|
||||||
return GenerateVertexShaderGLSL(id, buffer, compat, &attrMask, &uniformMask, errorString);
|
return GenerateVertexShaderGLSL(id, buffer, compat, &attrMask, &uniformMask, errorString);
|
||||||
}
|
}
|
||||||
|
case ShaderLanguage::HLSL_D3D11_TEST:
|
||||||
|
{
|
||||||
|
GLSLShaderCompat compat{};
|
||||||
|
compat.SetupForD3D11();
|
||||||
|
uint32_t attrMask;
|
||||||
|
uint64_t uniformMask;
|
||||||
|
return GenerateVertexShaderGLSL(id, buffer, compat, &attrMask, &uniformMask, errorString);
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -70,6 +85,7 @@ bool GenerateVShader(VShaderID id, char *buffer, ShaderLanguage lang, std::strin
|
||||||
bool TestCompileShader(const char *buffer, ShaderLanguage lang, bool vertex) {
|
bool TestCompileShader(const char *buffer, ShaderLanguage lang, bool vertex) {
|
||||||
switch (lang) {
|
switch (lang) {
|
||||||
case ShaderLanguage::HLSL_D3D11:
|
case ShaderLanguage::HLSL_D3D11:
|
||||||
|
case ShaderLanguage::HLSL_D3D11_TEST:
|
||||||
{
|
{
|
||||||
auto output = CompileShaderToBytecodeD3D11(buffer, strlen(buffer), vertex ? "vs_4_0" : "ps_4_0", 0);
|
auto output = CompileShaderToBytecodeD3D11(buffer, strlen(buffer), vertex ? "vs_4_0" : "ps_4_0", 0);
|
||||||
return !output.empty();
|
return !output.empty();
|
||||||
|
@ -128,8 +144,9 @@ bool TestShaderGenerators() {
|
||||||
LoadD3DCompilerDynamic();
|
LoadD3DCompilerDynamic();
|
||||||
|
|
||||||
ShaderLanguage languages[] = {
|
ShaderLanguage languages[] = {
|
||||||
ShaderLanguage::GLSL_VULKAN,
|
ShaderLanguage::HLSL_D3D11_TEST,
|
||||||
ShaderLanguage::HLSL_D3D11,
|
ShaderLanguage::HLSL_D3D11,
|
||||||
|
ShaderLanguage::GLSL_VULKAN,
|
||||||
ShaderLanguage::GLSL_140,
|
ShaderLanguage::GLSL_140,
|
||||||
ShaderLanguage::GLSL_300,
|
ShaderLanguage::GLSL_300,
|
||||||
ShaderLanguage::HLSL_DX9,
|
ShaderLanguage::HLSL_DX9,
|
||||||
|
|
Loading…
Add table
Reference in a new issue