Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion dm/gfx/nvn/dmsh_chain.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
// Generated file (dm/gfx/tools/dmsh_chain.py --header): the B shader library translation chain version this source tree expects (default options), one for every game;
// the host loads only <library dir>/b-<V>/. Run dmsh_chain.py --header after changing the chain's tools and commit this file with the change
#define DMSH_CHAIN "d24f05cf9d78"
#define DMSH_CHAIN "dce4e9cb5054"
4 changes: 2 additions & 2 deletions dm/gfx/tools/dmsh_entry.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# vs_layer, layer_out, vs_layer_entry), the depth entry point (vs_depth), and a pixel shader's integer and dual-source entry points (int_outputs, fs_uint, fs_dual). Functions of
# the MSL text only, with no build state, so tests import them. Part of the translation chain (dmsh_chain.FILES) and of every shader's cache key (dmsh_build.py CODE_FP).
import collections, re, sys
import dmsh_fetch, dmsh_side
import dmsh_side
from dmsh_reflect import attributes, in_word

def vs_writes(src, binds):
Expand Down Expand Up @@ -164,7 +164,7 @@ def kinds(e, seen):
if types.get(e, '').startswith('float'): # a float local is float bits, unless every value it takes is a register's bits (as_type<float>(…)): PRAGMATA's visibility shaders
bits = [re.fullmatch(r'as_type<float\d?>\((.*)\)', x) for x in defs[e]] # write float _n = as_type<float>(int(gl_PrimitiveID)) into an RG32Uint target
if not bits or not all(bits) or e in seen: return {'float'}
seen.add(e); return set().union(*(kinds(b[1].strip(), seen) for b in bits))
seen.add(e); return set().union(*(kinds(b[1].strip(), seen) for b in bits if b))
if e in seen: return set()
seen.add(e); return set().union(*(kinds(x, seen) for x in defs[e])) if defs[e] else set()
if re.fullmatch(r'-?\d+u?', e): return {'int'} if 0 < abs(int(e.rstrip('u'))) < 0x800000 else set()
Expand Down
Loading