|
We've done extensive analysis showing that for typical shading batches we see in the wild, our method of having an array of true/false runflags is very wasteful, and despite the extra indirection involved, having a flat list of the "on" points is much more efficient (5x or more speed gain on tight inner loops). We're not sure yet exactly what this will translate to in overall runtime gains, but it's got to help.
This is not a final review, just showing progress along the way.
The code in this pre-review adds the index list to the Runstate, and maintains it properly. I validate this by checking at every instruction that the runflags and indices, and all tests pass! So I know for sure that the indices are being set up properly.
The whole point is that now I can convert the shadeops one by one, at all times keeping the renderer working, and then only when everything is converted rip out the old runflags entirely.
Total comments: 1
Total comments: 2
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+1317 lines, -1055 lines) |
Patch |
 |
|
src/include/osl_pvt.h
|
View
|
2
|
3 chunks |
+8 lines, -6 lines |
0 comments
|
Download
|
 |
|
src/include/oslconfig.h
|
View
|
2
|
1 chunk |
+9 lines, -0 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/background.cpp
|
View
|
2
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/bsdf_ashikhmin_velvet.cpp
|
View
|
2
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/bsdf_cloth.cpp
|
View
|
2
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/bsdf_cloth_specular.cpp
|
View
|
2
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/bsdf_diffuse.cpp
|
View
|
2
|
1 chunk |
+2 lines, -4 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/bsdf_hair.cpp
|
View
|
2
|
1 chunk |
+2 lines, -4 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/bsdf_microfacet.cpp
|
View
|
2
|
1 chunk |
+4 lines, -8 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/bsdf_phong.cpp
|
View
|
2
|
2 chunks |
+2 lines, -4 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/bsdf_reflection.cpp
|
View
|
2
|
1 chunk |
+2 lines, -4 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/bsdf_refraction.cpp
|
View
|
2
|
1 chunk |
+2 lines, -4 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/bsdf_transparent.cpp
|
View
|
2
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/bsdf_ward.cpp
|
View
|
2
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/bsdf_westin.cpp
|
View
|
2
|
1 chunk |
+2 lines, -4 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/bssrdf.cpp
|
View
|
2
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/context.cpp
|
View
|
2
|
3 chunks |
+4 lines, -1 line |
0 comments
|
Download
|
 |
|
src/liboslexec/emissive.cpp
|
View
|
2
|
1 chunk |
+3 lines, -6 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/exec.cpp
|
View
|
1
2
|
22 chunks |
+190 lines, -80 lines |
1 comment
|
Download
|
 |
|
src/liboslexec/oparray.cpp
|
View
|
2
|
5 chunks |
+41 lines, -49 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/opassign.cpp
|
View
|
2
|
5 chunks |
+20 lines, -20 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/opattribute.cpp
|
View
|
2
|
4 chunks |
+22 lines, -25 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/opcolor.cpp
|
View
|
2
|
3 chunks |
+8 lines, -8 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/opcompare.cpp
|
View
|
2
|
6 chunks |
+6 lines, -6 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/opcontrol.cpp
|
View
|
1
2
|
9 chunks |
+201 lines, -70 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/opderivs.cpp
|
View
|
2
|
7 chunks |
+21 lines, -21 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/opinteger.cpp
|
View
|
2
|
9 chunks |
+12 lines, -18 lines |
1 comment
|
Download
|
 |
|
src/liboslexec/opmath.cpp
|
View
|
2
|
8 chunks |
+12 lines, -12 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/opmathfunc.cpp
|
View
|
2
|
25 chunks |
+85 lines, -127 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/opmatrix.cpp
|
View
|
2
|
8 chunks |
+52 lines, -59 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/opmessage.cpp
|
View
|
2
|
2 chunks |
+58 lines, -62 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/opmisc.cpp
|
View
|
|
1 chunk |
+0 lines, -2 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/opnoise.cpp
|
View
|
2
|
4 chunks |
+8 lines, -13 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/opspline.cpp
|
View
|
|
5 chunks |
+11 lines, -13 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/opstring.cpp
|
View
|
2
|
14 chunks |
+98 lines, -74 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/optexture.cpp
|
View
|
2
|
3 chunks |
+58 lines, -65 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/opvector.cpp
|
View
|
2
|
17 chunks |
+108 lines, -132 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/oslexec_pvt.h
|
View
|
1
2
|
9 chunks |
+86 lines, -30 lines |
0 comments
|
Download
|
 |
|
src/liboslexec/oslops.h
|
View
|
2
|
22 chunks |
+173 lines, -110 lines |
0 comments
|
Download
|
Total messages: 14
|