summaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker/st_cb_strings.c
diff options
context:
space:
mode:
authorFrancisco Jerez <[email protected]>2015-07-13 21:15:31 +0300
committerFrancisco Jerez <[email protected]>2015-07-29 14:12:46 +0300
commit8368939e5d94f8d4ae55a1f22a755922ee77132b (patch)
tree9a7cd246e06781b23744a2c121e475205ff88573 /src/mesa/state_tracker/st_cb_strings.c
parent86ae788baefefdb2fa77fe3c242ad2d81c8e834e (diff)
i965/fs: Implement pass to lower instructions of unsupported SIMD width.
This lowering pass implements an algorithm to expand SIMDN instructions into a sequence of SIMDM instructions in cases where the hardware doesn't support the original execution size natively for some particular instruction. The most important use-cases are: - Lowering send message instructions that don't support SIMD16 natively into SIMD8 (several texturing, framebuffer write and typed surface operations). - Lowering messages that don't support SIMD8 natively into SIMD16 (*cough*gen4*cough*). - 64-bit precision operations (e.g. FP64 and 64-bit integer multiplication). - SIMD32. The algorithm works by splitting the sources of the original instruction into chunks of width appropriate for the lowered instructions, and then interleaving the results component-wise into the destination of the original instruction. The pass is controlled by the get_lowered_simd_width() function that currently just returns the original execution size making the whole pass a no-op for the moment until some user is introduced. Reviewed-by: Jason Ekstrand <[email protected]> v2: Reverse order of the source transformations and split_inst emit call to make the code a bit easier to understand.
Diffstat (limited to 'src/mesa/state_tracker/st_cb_strings.c')
0 files changed, 0 insertions, 0 deletions