Giter VIP home page Giter VIP logo

Comments (3)

themikelester avatar themikelester commented on May 18, 2024

Any update on this? Did you have any luck plynkus?

from glsl-optimizer.

plynkus avatar plynkus commented on May 18, 2024

With some local, dirty, probably use case specific hacks to _mesa_print_ir_glsl() within ir_print_glsl_visitor.cpp, as I recall. I haven't looked at it in a while, but this is a good reminder to pull anew / retest / consider something more clean.

from glsl-optimizer.

Asubayo avatar Asubayo commented on May 18, 2024

Same issue. Yes, UBO are parsed but no printed in the glsl output.
Indeed, a quick modifications can be done in the function _mesa_print_ir_glsl (file ir_print_glsl_visitor.cpp), especially in the ir_print_glsl_visitor visitor for variable :

void ir_print_glsl_visitor::visit(ir_variable *ir)

After the line :

buffer.asprintf_append ("%s%s%s%s", cent, inv, interp[ir->data.interpolation], mode[decormode][ir->data.mode]);

we can add a ubo printer like :

buffer.asprintf_append ("%s%s%s%s", cent, inv, interp[ir->data.interpolation], mode[decormode][ir->data.mode]);
	print_precision (ir, ir->type);
	print_type(buffer, ir->type, false);

	if (ir->type->base_type == GLSL_TYPE_INTERFACE)
	{
		buffer.asprintf_append("\n{\n");

		for (auto pid = 0u; pid < ir->type->length; ++pid)
		{
			const auto &structField = ir->type->fields.structure[pid];
			
			buffer.asprintf_append("\t");
			print_precision(ir, structField.type);
			print_type(buffer, structField.type, false);
			buffer.asprintf_append(" ");
			buffer.asprintf_append(structField.name);

			if (structField.type->base_type == GLSL_TYPE_ARRAY)
			{
				buffer.asprintf_append("[%u]", structField.type->length);
			}

			buffer.asprintf_append(";\n");
		}

		buffer.asprintf_append("\n}");
	}
	
	buffer.asprintf_append (" ");
	print_var_name (ir);

from glsl-optimizer.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.