Пример #1
0
    def postProcessCode(self, code):
        self.rewrites = {}
        self.remap = {}
        self.fields = {}
        self.header = []

        self.processParameters(code)

        for name, group in self.groups.iteritems():
            self.processGroup(code, name, group)

        rewrite.rewrite(self.compiler, code, self.rewrites)

        code.ast = ast.Suite([ast.InputBlock(self.header), code.ast])

        if self.ssaBroken:
            ssatransform.evaluateCode(self.compiler, code)

        simplify.evaluateCode(self.compiler, self.prgm, code)
Пример #2
0
	def postProcessCode(self, code):
		self.rewrites = {}
		self.remap = {}
		self.fields = {}
		self.header = []

		self.processParameters(code)

		for name, group in self.groups.iteritems():
			self.processGroup(code, name, group)

		rewrite.rewrite(self.compiler, code, self.rewrites)

		code.ast = ast.Suite([ast.InputBlock(self.header), code.ast])

		if self.ssaBroken:
			ssatransform.evaluateCode(self.compiler, code)

		simplify.evaluateCode(self.compiler, self.prgm, code)
Пример #3
0
	def process(self):
		returns = FindReturns().process(self.code)

		assert len(returns) == 1, "Temporary Limitation: only one return per shader"

		rewrites = {}

		for ret in returns:
			desc, rewrites[ret] = self.processReturn(ret)

		rewrite.rewrite(self.compiler, self.code, rewrites)

		# HACK
		while loadelimination.evaluateCode(self.compiler, self.prgm, self.code, simplify=False):
			pass

		#simplify.evaluateCode(self.compiler, self.prgm, self.code)
		#storeelimination.evaluate(self.compiler, self.prgm, simplify=False)

		simplify.evaluateCode(self.compiler, self.prgm, self.code)

		return desc