[Mesa-dev] [PATCH V2] util/disk_cache: compress individual cache entries
Timothy Arceri
tarceri at itsqueeze.com
Thu Mar 2 21:52:03 UTC 2017
On 03/03/17 01:49, Emil Velikov wrote:
> Hi Tim,
>
> On 2 March 2017 at 01:36, Timothy Arceri <tarceri at itsqueeze.com> wrote:
>> This reduces the cache size for Deus Ex from ~160M to ~30M for
>> radeonsi.
>>
>> I'm also seeing the following improvements in minimum fps in the
>> Shadow of Mordor benchmark:
>>
>> no-cache: ~10fps
>> with-cache-no-compression: ~15fps
>> with-cache-and-compression: ~20fps
>>
>> Note the with cache results are from the second run after closing
>> and opening the game to avoid the in-memory cache.
>>
>> Since we only really care about decompression I went with
>> Z_BEST_COMPRESSION as suggested on irc by Steinar H. Gunderson
>> who has benchmarked decompression speeds.
>>
> Attempting to side-step the "which compression is best" topic, I'll
> just mention:
> zlib has been around for a long time than many others so,
> a) chances are smaller that vendors that ship their own, but even if they do
> b) the API should be stable across the system and bundled one.
>
> If not we can reconsider if things get hairy ;-)
>
> A couple of small suggestions below.
>
>
>> +ZLIB_REQUIRED=1.2.8
>>
> Any particular reason behind this version - afaict it's released in
> 2013 and I'm wondering if some distros may be slow/missing it.
>
It's what's shipped with Fedora and therefore what I tested with. If
distros are lagging behind I don't think this is a problem we need to be
concerned with, it may prompt them to upgrade which I don't think is a
bad thing.
>
>> @@ -36,20 +36,22 @@ libmesautil_la_CPPFLAGS = \
>> -I$(top_srcdir)/src/mesa \
>> -I$(top_srcdir)/src/gallium/include \
>> -I$(top_srcdir)/src/gallium/auxiliary \
>> $(VISIBILITY_CFLAGS) \
>> $(MSVC2013_COMPAT_CFLAGS)
>
> Add ZLIB_CFLAGS to the above.
>
>>
>> libmesautil_la_SOURCES = \
>> $(MESA_UTIL_FILES) \
>> $(MESA_UTIL_GENERATED_FILES)
>>
>> +libmesautil_la_LIBADD = -lz
>> +
> Use ZLIB_LIBS here.
>
> Also do squash this hunk it. It should handle the Android builds.
Thanks!
>
> --- a/src/util/Android.mk
> +++ b/src/util/Android.mk
> @@ -53,6 +53,8 @@ $(LOCAL_GENERATED_SOURCES): PRIVATE_CUSTOM_TOOL =
> $(PRIVATE_PYTHON) $^ > $@
> $(LOCAL_GENERATED_SOURCES): $(intermediates)/%.c: $(LOCAL_PATH)/%.py
> $(transform-generated-source)
>
> +LOCAL_SHARED_LIBRARIES := libz
> +
> include $(MESA_COMMON_MK)
> include $(BUILD_STATIC_LIBRARY)
>
> @@ -88,5 +90,7 @@ $(LOCAL_GENERATED_SOURCES): PRIVATE_CUSTOM_TOOL =
> $(PRIVATE_PYTHON) $^ > $@
> $(LOCAL_GENERATED_SOURCES): $(intermediates)/%.c: $(LOCAL_PATH)/%.py
> $(transform-generated-source)
>
> +LOCAL_SHARED_LIBRARIES := libz
> +
>
>
> Thanks
> Emil
>
More information about the mesa-dev
mailing list