From mboxrd@z Thu Jan 1 00:00:00 1970
From: bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ@public.gmane.org
Subject: [Bug 79462] New: [NVC0/Codegen] Shader compilation falis
in spill logic
Date: Fri, 30 May 2014 18:44:00 +0000
Message-ID:
Priority
medium
Bug ID
79462
Assignee
nouveau@lists.freedesktop.org
Summary
[NVC0/Codegen] Shader compilation falis in spill logic
Severity
normal
Classification
Unclassified
OS
All
Reporter
imirkin@alum.mit.edu
Hardware
Other
Status
NEW
Version
unspecified
Component
Drivers/DRI/nouveau
Product
Mesa
Created attachment 100179 [details]
failing tgsi shader
The attached shader fails in the RA step, when inserting spill code:
nv50_ir::SpillCodeInserter::run (this=0x7ffffffec0c0, lst=std::list)
at codegen/nv50_ir_ra.cpp:1561
1561 while (!dval->uses.empty()) {
Easily reproduced with nouveau_compiler -a c0. Apparently this shader is
generated as part of the d3d9 st, with skyrimlauncher, when it's trying to
detect the graphics card.
dval is null, which means that something out there isn't an lvalue. Or, in this
case, apparently a null value??
(gdb) p *defi
$4 = {_vptr.Instruction = 0x86e570, next = 0x0, prev = 0x0, id = -1, serial =
27, op = nv50_ir::OP_SPLIT,
dType = nv50_ir::TYPE_B128, sType = nv50_ir::TYPE_B128, cc = nv50_ir::CC_TR,
rnd = nv50_ir::ROUND_N,
cache = nv50_ir::CACHE_CA, subOp = 0, encSize = 0, saturate = 0, join = 0,
fixed = 0, terminator = 0,
ftz = 0, dnz = 0, ipa = 0, lanes = 15, perPatch = 0, exit = 0, mask = 0,
postFactor = 0 '\000',
predSrc = -1 '\377', flagsDef = -1 '\377', flagsSrc = -1 '\377', sched = 0,
bb = 0x0,
defs = std::deque with 4 elements = {{value = 0x0, origin = 0x0, insn =
0x200}, {value = 0x85ce30,
origin = 0x7ffff71a0698 <main_arena+88>, insn = 0x9e5e40}, {value = 0x0,
origin = 0x0,
insn = 0x9e5e40}, {value = 0x0, origin = 0x0, insn = 0x9e5e40}},
srcs = std::deque with 1 elements = {{mod = {bits = 0 '\000'}, indirect =
"\377\377",
swizzle = 0 '\000', usedAsPtr = false, value = 0x0, insn = 0x200}}}
Note that the second def isn't null but the others are? Perhaps this happens as
part of dead code elimination? Need to investigate more.