Commit 9f8dc3bf authored by Emil Velikov's avatar Emil Velikov Committed by Emil Velikov

utils: build sha1/disk cache only with Android/Autoconf

Earlier commit imported a SHA1 implementation and relaxed the SHA1 and
disk cache handling, broking the Windows builds.

Restrict things for now until we get to a proper fix.

Fixes: d1efa09d "util: import sha1 implementation from OpenBSD"
Signed-off-by: default avatarEmil Velikov <emil.velikov@collabora.com>
parent d1efa09d
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment