i965/blorp: Expose the shader cache through function pointers
authorJason Ekstrand <jason.ekstrand@intel.com>
Fri, 26 Aug 2016 17:07:40 +0000 (10:07 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Mon, 29 Aug 2016 19:17:34 +0000 (12:17 -0700)
commit600446ccc7a95d589e92d0f574eed823b678377c
treeba4c7a5f3a73e4be2f97a3c28beb19dde94a6cb3
parenta14d1b63ce74773bec34d0c2b24b7d6fc36d0330
i965/blorp: Expose the shader cache through function pointers

This sanitizes blorp's access to the i965 driver's shader cache by patching
it through the blorp_context.  When we start using blorp in Vulkan, we will
simply have to implement such a caching interface in the Vulkan driver.

Note: In my first attempt at this, I simplified it down to a single
upload_shader entrypoint and implemented the caching inside of blorp.  This
doesn't work, however, because the i965 driver will, on occation, dump its
entire cache and start over.  When this happens, blorp needs to be able to
recompile its shaders and re-upload them.  It's easiest to just expose the
caching interface.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
src/mesa/drivers/dri/i965/blorp.h
src/mesa/drivers/dri/i965/blorp_blit.c
src/mesa/drivers/dri/i965/blorp_clear.c
src/mesa/drivers/dri/i965/brw_blorp.c