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 [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
