[Mesa-dev] RFC: Haswell resource streamer/hw-generated binding tables (v2)

Abdiel Janulgue abdiel.janulgue at linux.intel.com
Thu Oct 31 14:41:30 CET 2013

On Thursday, October 10, 2013 01:04:08 PM Eric Anholt wrote:
> My basic comment on resource streamer: We need performance data showing
> that it is a win before we commit it.  I'm not planning on reviewing the
> changes until we get that data.

Okay, I revisited the series, did some additional optimizations where the RS 
was able to cut surface state emission by up to 50% but without requiring a 
separate bo for cache (I need to clean it up first before re-submitting). And 
here finally, some light in the end of the tunnel:

x score_glb2_7_TREX_resource_streamer_ON
+ score_glb2_7_TREX_resource_streamer_OFF

    N           Min           Max        Median           Avg        Stddev
x  31            68            69            69     68.774194    0.42502372
+  31            68            69            68     68.193548    0.40160966
Difference at 95.0% confidence
        -0.580645 +/- 0.210049
        -0.844278% +/- 0.305419%
        (Student's t, pooled s = 0.413482)


Anyway, I realized that I have been using GLB which only samples small number 
of surfaces in a shader. It's quite shortsighted. This explains why 
performance results are not very apparent in those benchmarks when enabling 
hw-generated binding tables.

I think the resource streamer can really shine in cases where shaders sample 
much larger number of surfaces since it is able to skip uploading the binding 
table data using the CPU. I'll try to experiment next with benchmarks that has 
shaders requiring larger amounts of sampled surfaces. If you have suggestions 
for certain benchmarks that do this, please let me know!


More information about the mesa-dev mailing list