* commit '6e820eec21917f8e25c40dbc8b972468535af0e8': EGL: do not use sparse files for shader
This commit is contained in:
commit
0adc8f2600
@ -241,19 +241,11 @@ void egl_cache_t::saveBlobCacheLocked() {
|
||||
}
|
||||
|
||||
size_t fileSize = headerSize + cacheSize;
|
||||
if (ftruncate(fd, fileSize) == -1) {
|
||||
ALOGE("error setting cache file size: %s (%d)", strerror(errno),
|
||||
errno);
|
||||
close(fd);
|
||||
unlink(fname);
|
||||
return;
|
||||
}
|
||||
|
||||
uint8_t* buf = reinterpret_cast<uint8_t*>(mmap(NULL, fileSize,
|
||||
PROT_WRITE, MAP_SHARED, fd, 0));
|
||||
if (buf == MAP_FAILED) {
|
||||
ALOGE("error mmaping cache file: %s (%d)", strerror(errno),
|
||||
errno);
|
||||
uint8_t* buf = new uint8_t [fileSize];
|
||||
if (!buf) {
|
||||
ALOGE("error allocating buffer for cache contents: %s (%d)",
|
||||
strerror(errno), errno);
|
||||
close(fd);
|
||||
unlink(fname);
|
||||
return;
|
||||
@ -264,7 +256,7 @@ void egl_cache_t::saveBlobCacheLocked() {
|
||||
if (err != OK) {
|
||||
ALOGE("error writing cache contents: %s (%d)", strerror(-err),
|
||||
-err);
|
||||
munmap(buf, fileSize);
|
||||
delete [] buf;
|
||||
close(fd);
|
||||
unlink(fname);
|
||||
return;
|
||||
@ -275,7 +267,16 @@ void egl_cache_t::saveBlobCacheLocked() {
|
||||
uint32_t* crc = reinterpret_cast<uint32_t*>(buf + 4);
|
||||
*crc = crc32c(buf + headerSize, cacheSize);
|
||||
|
||||
munmap(buf, fileSize);
|
||||
if (write(fd, buf, fileSize) == -1) {
|
||||
ALOGE("error writing cache file: %s (%d)", strerror(errno),
|
||||
errno);
|
||||
delete [] buf;
|
||||
close(fd);
|
||||
unlink(fname);
|
||||
return;
|
||||
}
|
||||
|
||||
delete [] buf;
|
||||
fchmod(fd, S_IRUSR);
|
||||
close(fd);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user