log properly the compiler used to compile Skia

Using #define's directly from VCL will report the compiler used
to compile VCL, which may be different from the one used for Skia.
Also truncate the log file on opening.

Change-Id: Iddf613613df20505f1abe1dd5468dcc8c7041410
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97090
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
This commit is contained in:
Luboš Luňák
2020-06-25 10:35:00 +02:00
parent c3f8702241
commit 2eeb682211
6 changed files with 41 additions and 12 deletions

View File

@@ -131,6 +131,7 @@ $(call gb_LinkTarget_set_include,$(1),\
-I$(call gb_UnpackedTarball_get_dir,skia)/include/third_party/vulkan \ -I$(call gb_UnpackedTarball_get_dir,skia)/include/third_party/vulkan \
-I$(call gb_UnpackedTarball_get_dir,skia)/tools/gpu \ -I$(call gb_UnpackedTarball_get_dir,skia)/tools/gpu \
-I$(call gb_UnpackedTarball_get_dir,skia) \ -I$(call gb_UnpackedTarball_get_dir,skia) \
-I$(SRCDIR)/external/skia/inc/ \
$$(INCLUDE) \ $$(INCLUDE) \
) )
$(call gb_LinkTarget_use_libraries,$(1),skia) $(call gb_LinkTarget_use_libraries,$(1),skia)

View File

@@ -85,10 +85,12 @@ $(eval $(call gb_Library_set_include,skia,\
-I$(call gb_UnpackedTarball_get_dir,skia)/include/third_party/skcms/ \ -I$(call gb_UnpackedTarball_get_dir,skia)/include/third_party/skcms/ \
-I$(call gb_UnpackedTarball_get_dir,skia)/third_party/vulkanmemoryallocator/ \ -I$(call gb_UnpackedTarball_get_dir,skia)/third_party/vulkanmemoryallocator/ \
-I$(call gb_UnpackedTarball_get_dir,skia)/include/third_party/vulkan/ \ -I$(call gb_UnpackedTarball_get_dir,skia)/include/third_party/vulkan/ \
-I$(SRCDIR)/external/skia/inc/ \
)) ))
$(eval $(call gb_Library_add_exception_objects,skia,\ $(eval $(call gb_Library_add_exception_objects,skia,\
external/skia/source/SkMemory_malloc \ external/skia/source/SkMemory_malloc \
external/skia/source/skia_compiler \
)) ))
$(eval $(call gb_Library_set_generated_cxx_suffix,skia,cpp)) $(eval $(call gb_Library_set_generated_cxx_suffix,skia,cpp))

13
external/skia/inc/skia_compiler.hxx vendored Normal file
View File

@@ -0,0 +1,13 @@
/*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef SKIA_COMPILER_H
#define SKIA_COMPILER_H
#include <include/core/SkTypes.h>
SK_API const char* skia_compiler_name();
#endif

20
external/skia/source/skia_compiler.cxx vendored Normal file
View File

@@ -0,0 +1,20 @@
/*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include <skia_compiler.hxx>
// Get the type of compiler that Skia is compiled with.
const char* skia_compiler_name()
{
#if defined __clang__
return "Clang";
#elif defined __GNUC__
return "GCC";
#elif defined _MSC_VER
return "MSVC";
#else
return "?";
#endif
}

View File

@@ -219,7 +219,7 @@ bool WinOpenGLDeviceInfo::isDeviceBlocked()
OUString aCacheFolder = getCacheFolder(); OUString aCacheFolder = getCacheFolder();
OUString aCacheFile(aCacheFolder + "/opengl_device.log"); OUString aCacheFile(aCacheFolder + "/opengl_device.log");
SvFileStream aOpenGLLogFile(aCacheFile, StreamMode::WRITE); SvFileStream aOpenGLLogFile(aCacheFile, StreamMode::WRITE|StreamMode::TRUNC);
writeToLog(aOpenGLLogFile, "DriverVersion", maDriverVersion); writeToLog(aOpenGLLogFile, "DriverVersion", maDriverVersion);
writeToLog(aOpenGLLogFile, "DriverDate", maDriverDate); writeToLog(aOpenGLLogFile, "DriverDate", maDriverDate);

View File

@@ -36,6 +36,7 @@ bool isVCLSkiaEnabled() { return false; }
#include <SkCanvas.h> #include <SkCanvas.h>
#include <SkPaint.h> #include <SkPaint.h>
#include <SkSurface.h> #include <SkSurface.h>
#include <skia_compiler.hxx>
#ifdef DBG_UTIL #ifdef DBG_UTIL
#include <fstream> #include <fstream>
@@ -109,7 +110,7 @@ static bool isVulkanBlacklisted(const VkPhysicalDeviceProperties& props)
CrashReporter::addKeyValue("VulkanDeviceName", OUString::createFromAscii(props.deviceName), CrashReporter::addKeyValue("VulkanDeviceName", OUString::createFromAscii(props.deviceName),
CrashReporter::Write); CrashReporter::Write);
SvFileStream logFile(getCacheFolder() + "/skia.log", StreamMode::WRITE); SvFileStream logFile(getCacheFolder() + "/skia.log", StreamMode::WRITE | StreamMode::TRUNC);
writeToLog(logFile, "RenderMethod", "vulkan"); writeToLog(logFile, "RenderMethod", "vulkan");
writeToLog(logFile, "Vendor", vendorIdStr); writeToLog(logFile, "Vendor", vendorIdStr);
writeToLog(logFile, "Device", deviceIdStr); writeToLog(logFile, "Device", deviceIdStr);
@@ -131,18 +132,10 @@ static bool isVulkanBlacklisted(const VkPhysicalDeviceProperties& props)
static void writeSkiaRasterInfo() static void writeSkiaRasterInfo()
{ {
SvFileStream logFile(getCacheFolder() + "/skia.log", StreamMode::WRITE); SvFileStream logFile(getCacheFolder() + "/skia.log", StreamMode::WRITE | StreamMode::TRUNC);
writeToLog(logFile, "RenderMethod", "raster"); writeToLog(logFile, "RenderMethod", "raster");
// Log compiler, Skia works best when compiled with Clang. // Log compiler, Skia works best when compiled with Clang.
#if defined __clang__ writeToLog(logFile, "Compiler", skia_compiler_name());
writeToLog(logFile, "Compiler", "Clang");
#elif defined __GNUC__
writeToLog(logFile, "Compiler", "GCC");
#elif defined _MSC_VER
writeToLog(logFile, "Compiler", "MSVC");
#else
writeToLog(logFile, "Compiler", "?");
#endif
} }
static sk_app::VulkanWindowContext::SharedGrContext getTemporaryGrContext(); static sk_app::VulkanWindowContext::SharedGrContext getTemporaryGrContext();