On Thursday, June 04, 2015 07:04:49 PM Francisco Jerez wrote: > This series migrates the FS compiler back-end to the i965 IR builder I > proposed a while ago as part of my ARB_shader_image_load_store series, > and fixes a couple of bugs I found during the process. It doesn't yet > attempt to convert the VEC4 back-end, but the VEC4 version of the > builder is also included for completeness. > > For a branch in testable form see: > http://cgit.freedesktop.org/~currojerez/mesa/log/?h=i965-ir-builder
I ran this series through my assembly diffing tool. Keith advised me to build such a tool when I was working on another large scale refactor (combining the Gen4-7 and Gen8+ generators), and it proved to be invaluable - even though Piglit was passing, I found many cases where we generated different assembly, and one or the other was bogus. Many bugs were caught in both codebases. So I figured running it on this refactor would be wise as well. There are differences, but they look pretty reasonable: bin/ext_framebuffer_multisample-alpha-to-coverage-dual-src-blend 2 -auto -fbo bin/ext_framebuffer_multisample-alpha-to-coverage-dual-src-blend 4 -auto -fbo bin/ext_framebuffer_multisample-alpha-to-coverage-dual-src-blend 6 -auto -fbo bin/ext_framebuffer_multisample-alpha-to-coverage-dual-src-blend 8 -auto -fbo bin/ext_framebuffer_multisample-alpha-to-one-dual-src-blend 2 -auto -fbo bin/ext_framebuffer_multisample-alpha-to-one-dual-src-blend 4 -auto -fbo bin/ext_framebuffer_multisample-alpha-to-one-dual-src-blend 6 -auto -fbo bin/ext_framebuffer_multisample-alpha-to-one-dual-src-blend 8 -auto -fbo ^^^ These are 1Q vs. 2Q changes in SIMD16 shaders that split dual source FB writes into two SIMD8 sends. Expected bug fix. bin/arb_blend_func_extended-fbo-extended-blend-explicit -auto bin/arb_blend_func_extended-fbo-extended-blend -auto ^^^ Ditto, but extra MOVs are being generated now. Looks OK. bin/glslparsertest /home/kwg/Projects/piglit/tests/spec/arb_explicit_attrib_location/1.10/compiler/layout-13.frag pass 1.10 GL_ARB_explicit_attrib_location bin/glslparsertest /home/kwg/Projects/piglit/tests/spec/arb_explicit_attrib_location/1.20/compiler/layout-13.frag pass 1.20 GL_ARB_explicit_attrib_location ^^^ DualSrcLow message (the first of the two split sends) now uses g2 instead of g122. Looks fine; better even. bin/glslparsertest /home/kwg/Projects/piglit/tests/spec/arb_gpu_shader5/compiler/builtin-functions/fs-gatherOffsets.frag pass 1.50 GL_ARB_gpu_shader5 ^^^ It looks like register spilling happens in a different order or something. Registers and buffer offsets get shuffled around, but register/offset pairs always stay together. So I think it's OK. bin/getteximage-formats init-by-rendering -auto -fbo ^^^ Has intermittent failures that appear to be unrelated to this code (assembly differs between subsequent runs even on mesa master). For reference, I've attached the assembly differences, in case you want to look at any of them. To be clear, I'm not requesting any changes based on this exercise. --Ken
arb_blend_func_extended-fbo-extended-blend.txt.gz
Description: application/gzip
arb_blend_func_extended-fbo-extended-blend-explicit.txt.gz
Description: application/gzip
ext_framebuffer_multisample-alpha-to-coverage-dual-src-blend__4.txt.gz
Description: application/gzip
ext_framebuffer_multisample-alpha-to-one-dual-src-blend__4.txt.gz
Description: application/gzip
fs-gatherOffsets.txt.gz
Description: application/gzip
layout-13.txt.gz
Description: application/gzip
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev