summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/lines.h
diff options
context:
space:
mode:
authorTopi Pohjolainen <[email protected]>2015-06-25 14:00:41 +0300
committerTopi Pohjolainen <[email protected]>2015-08-13 13:37:49 +0300
commit1bba29ed403e735ba0bf04ed8aa2e571884fcaaf (patch)
tree578d9a1434bf1525c81b943cd98920850af41e14 /src/mesa/main/lines.h
parent12a66d91f6b0beff123fb6fd8a4f3c3796379532 (diff)
i965: Stop aux data compare preventing program binary re-use
Items in the program cache consist of three things: key, the data representing the instructions and auxiliary data representing uniform storage. The data consisting of instructions is stored into a drm buffer object while the key and the auxiliary data reside in malloced section. Now the cache uploading is equipped with a check that iterates over existing items and seeks to find a another item using identical instruction data than the one being just uploaded. If such is found there is no need to add another section into the drm buffer object holding identical copy of the existing one. The item just being uploaded should instead simply point to the same offset in the underlying drm buffer object. Unfortunately the check for the matching instruction data is coupled with a check for matching auxiliary data also. This effectively prevents the cache from ever containing two items that could share a section in the drm buffer object. The constraint for the instruction data and auxiliary data to match is, fortunately, unnecessary strong. When items are stored into the cache they will anyway contain their own copy of the auxiliary data (even if they matched - which they in real world never will). The only thing the items would be sharing is the instruction data and hence we should only check for that to match and nothing else. No piglit regression in jenkins. Reviewed-by: Kenneth Graunke <[email protected]> Signed-off-by: Topi Pohjolainen <[email protected]>
Diffstat (limited to 'src/mesa/main/lines.h')
0 files changed, 0 insertions, 0 deletions