HACK glsl: Write defaults to unused generic attributes
This commit is contained in:
		| @@ -110,8 +110,11 @@ EmitContext::EmitContext(IR::Program& program, Bindings& bindings, const Profile | ||||
|         header += fmt::format("layout(location={})out vec4 frag_color{};", index, index); | ||||
|     } | ||||
|     for (size_t index = 0; index < info.stores_generics.size(); ++index) { | ||||
|         if (info.stores_generics[index]) { | ||||
|             header += fmt::format("layout(location={}) out vec4 out_attr{};", index, index); | ||||
|         // TODO: Properly resolve attribute issues | ||||
|         const auto declaration{ | ||||
|             fmt::format("layout(location={}) out vec4 out_attr{};", index, index)}; | ||||
|         if (info.stores_generics[index] || stage == Stage::VertexA || stage == Stage::VertexB) { | ||||
|             header += declaration; | ||||
|         } | ||||
|     } | ||||
|     DefineConstantBuffers(bindings); | ||||
|   | ||||
| @@ -209,6 +209,12 @@ std::string EmitGLSL(const Profile& profile, const RuntimeInfo& runtime_info, IR | ||||
|     ctx.header += "void main(){\n"; | ||||
|     if (program.stage == Stage::VertexA || program.stage == Stage::VertexB) { | ||||
|         ctx.header += "gl_Position = vec4(0.0f, 0.0f, 0.0f, 1.0f);"; | ||||
|         // TODO: Properly resolve attribute issues | ||||
|         for (size_t index = 0; index < program.info.stores_generics.size() / 2; ++index) { | ||||
|             if (!program.info.stores_generics[index]) { | ||||
|                 ctx.header += fmt::format("out_attr{}=vec4(0,0,0,1);", index); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     DefineVariables(ctx, ctx.header); | ||||
|     if (ctx.uses_cc_carry) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user