aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Shader/CodeGen
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2020-03-22 18:31:31 -0300
committerGitHub <noreply@github.com>2020-03-23 08:31:31 +1100
commit49d7b1c7d82e37f1bde1c4776926f8c1c149727d (patch)
tree0a537e1cfb34868ec02fc1b41194ddfd94aac8f3 /Ryujinx.Graphics.Shader/CodeGen
parent31b94f4641894060349a55d56b22f47829c9bef6 (diff)
Implement textureQueryLevels (#1007)
Diffstat (limited to 'Ryujinx.Graphics.Shader/CodeGen')
-rw-r--r--Ryujinx.Graphics.Shader/CodeGen/Glsl/Declarations.cs3
-rw-r--r--Ryujinx.Graphics.Shader/CodeGen/Glsl/Instructions/InstGenMemory.cs9
2 files changed, 9 insertions, 3 deletions
diff --git a/Ryujinx.Graphics.Shader/CodeGen/Glsl/Declarations.cs b/Ryujinx.Graphics.Shader/CodeGen/Glsl/Declarations.cs
index c5ac06b3..a47c4611 100644
--- a/Ryujinx.Graphics.Shader/CodeGen/Glsl/Declarations.cs
+++ b/Ryujinx.Graphics.Shader/CodeGen/Glsl/Declarations.cs
@@ -15,11 +15,10 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl
public static void Declare(CodeGenContext context, StructuredProgramInfo info)
{
- context.AppendLine("#version 420 core");
+ context.AppendLine("#version 430 core");
context.AppendLine("#extension GL_ARB_gpu_shader_int64 : enable");
context.AppendLine("#extension GL_ARB_shader_ballot : enable");
context.AppendLine("#extension GL_ARB_shader_group_vote : enable");
- context.AppendLine("#extension GL_ARB_shader_storage_buffer_object : enable");
if (context.Config.Stage == ShaderStage.Compute)
{
diff --git a/Ryujinx.Graphics.Shader/CodeGen/Glsl/Instructions/InstGenMemory.cs b/Ryujinx.Graphics.Shader/CodeGen/Glsl/Instructions/InstGenMemory.cs
index 5687ce7e..74828702 100644
--- a/Ryujinx.Graphics.Shader/CodeGen/Glsl/Instructions/InstGenMemory.cs
+++ b/Ryujinx.Graphics.Shader/CodeGen/Glsl/Instructions/InstGenMemory.cs
@@ -494,7 +494,14 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl.Instructions
string lodExpr = GetSoureExpr(context, lod, GetSrcVarType(operation.Inst, lodSrcIndex));
- return $"textureSize({samplerName}, {lodExpr}){GetMask(texOp.Index)}";
+ if (texOp.Index == 3)
+ {
+ return $"textureQueryLevels({samplerName})";
+ }
+ else
+ {
+ return $"textureSize({samplerName}, {lodExpr}){GetMask(texOp.Index)}";
+ }
}
private static string GetStorageBufferAccessor(string slotExpr, string offsetExpr, ShaderStage stage)