Compare commits
3 Commits
submit/mes
...
mesa-17.0.
Author | SHA1 | Date | |
---|---|---|---|
|
9cb066601c | ||
|
45297f7e4a | ||
|
acc7837799 |
@@ -43,6 +43,7 @@ LOCAL_CFLAGS += \
|
||||
-DANDROID_VERSION=0x0$(MESA_ANDROID_MAJOR_VERSION)0$(MESA_ANDROID_MINOR_VERSION)
|
||||
|
||||
LOCAL_CFLAGS += \
|
||||
-DENABLE_SHADER_CACHE \
|
||||
-D__STDC_LIMIT_MACROS \
|
||||
-DHAVE___BUILTIN_EXPECT \
|
||||
-DHAVE___BUILTIN_FFS \
|
||||
|
@@ -1766,6 +1766,7 @@ if test -n "$with_vulkan_drivers"; then
|
||||
fi
|
||||
|
||||
|
||||
DEFINES="$DEFINES -DENABLE_SHADER_CACHE"
|
||||
AM_CONDITIONAL(NEED_MEGADRIVER, test -n "$DRI_DIRS")
|
||||
AM_CONDITIONAL(NEED_LIBMESA, test "x$enable_glx" = xxlib -o \
|
||||
"x$enable_osmesa" = xyes -o \
|
||||
|
@@ -37,6 +37,8 @@
|
||||
|
||||
bool error = false;
|
||||
|
||||
#ifdef ENABLE_SHADER_CACHE
|
||||
|
||||
static void
|
||||
expect_equal(uint64_t actual, uint64_t expected, const char *test)
|
||||
{
|
||||
@@ -378,10 +380,12 @@ test_put_key_and_get_key(void)
|
||||
|
||||
disk_cache_destroy(cache);
|
||||
}
|
||||
#endif /* ENABLE_SHADER_CACHE */
|
||||
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
#ifdef ENABLE_SHADER_CACHE
|
||||
int err;
|
||||
|
||||
test_disk_cache_create();
|
||||
@@ -392,6 +396,7 @@ main(void)
|
||||
|
||||
err = rmrf_local(CACHE_TEST_TMP);
|
||||
expect_equal(err, 0, "Removing " CACHE_TEST_TMP " again");
|
||||
#endif /* ENABLE_SHADER_CACHE */
|
||||
|
||||
return error ? 1 : 0;
|
||||
}
|
||||
|
@@ -1612,6 +1612,7 @@ _mesa_LinkProgram(GLuint programObj)
|
||||
"glLinkProgram"));
|
||||
}
|
||||
|
||||
#ifdef ENABLE_SHADER_CACHE
|
||||
/**
|
||||
* Generate a SHA-1 hash value string for given source string.
|
||||
*/
|
||||
@@ -1723,6 +1724,8 @@ read_shader(const gl_shader_stage stage, const char *source)
|
||||
return buffer;
|
||||
}
|
||||
|
||||
#endif /* ENABLE_SHADER_CACHE */
|
||||
|
||||
/**
|
||||
* Called via glShaderSource() and glShaderSourceARB() API functions.
|
||||
* Basically, concatenate the source code strings into one long string
|
||||
@@ -1795,6 +1798,7 @@ _mesa_ShaderSource(GLuint shaderObj, GLsizei count,
|
||||
source[totalLength - 1] = '\0';
|
||||
source[totalLength - 2] = '\0';
|
||||
|
||||
#ifdef ENABLE_SHADER_CACHE
|
||||
/* Dump original shader source to MESA_SHADER_DUMP_PATH and replace
|
||||
* if corresponding entry found from MESA_SHADER_READ_PATH.
|
||||
*/
|
||||
@@ -1805,6 +1809,7 @@ _mesa_ShaderSource(GLuint shaderObj, GLsizei count,
|
||||
free(source);
|
||||
source = replacement;
|
||||
}
|
||||
#endif /* ENABLE_SHADER_CACHE */
|
||||
|
||||
shader_source(sh, source);
|
||||
|
||||
|
@@ -21,6 +21,8 @@
|
||||
* IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifdef ENABLE_SHADER_CACHE
|
||||
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
@@ -705,3 +707,5 @@ disk_cache_has_key(struct disk_cache *cache, cache_key key)
|
||||
|
||||
return memcmp(entry, key, CACHE_KEY_SIZE) == 0;
|
||||
}
|
||||
|
||||
#endif /* ENABLE_SHADER_CACHE */
|
||||
|
@@ -40,6 +40,8 @@ struct disk_cache;
|
||||
|
||||
/* Provide inlined stub functions if the shader cache is disabled. */
|
||||
|
||||
#ifdef ENABLE_SHADER_CACHE
|
||||
|
||||
/**
|
||||
* Create a new cache object.
|
||||
*
|
||||
@@ -129,6 +131,46 @@ disk_cache_put_key(struct disk_cache *cache, cache_key key);
|
||||
bool
|
||||
disk_cache_has_key(struct disk_cache *cache, cache_key key);
|
||||
|
||||
#else
|
||||
|
||||
static inline struct disk_cache *
|
||||
disk_cache_create(void)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline void
|
||||
disk_cache_destroy(struct disk_cache *cache) {
|
||||
return;
|
||||
}
|
||||
|
||||
static inline void
|
||||
disk_cache_put(struct disk_cache *cache, cache_key key,
|
||||
const void *data, size_t size)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static inline uint8_t *
|
||||
disk_cache_get(struct disk_cache *cache, cache_key key, size_t *size)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline void
|
||||
disk_cache_put_key(struct disk_cache *cache, cache_key key)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static inline bool
|
||||
disk_cache_has_key(struct disk_cache *cache, cache_key key)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif /* ENABLE_SHADER_CACHE */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -31,7 +31,6 @@ void SHA1Pad(SHA1_CTX *);
|
||||
void SHA1Transform(uint32_t [5], const uint8_t [SHA1_BLOCK_LENGTH]);
|
||||
void SHA1Update(SHA1_CTX *, const uint8_t *, size_t);
|
||||
void SHA1Final(uint8_t [SHA1_DIGEST_LENGTH], SHA1_CTX *);
|
||||
__END_DECLS
|
||||
|
||||
#define HTONDIGEST(x) do { \
|
||||
x[0] = htonl(x[0]); \
|
||||
|
Reference in New Issue
Block a user