Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • alchemy/viewer
  • Miezhiko/alchemy-next
  • JennaHuntsman/xdg-integration
  • logue/alchemy-next
  • FelixWolf/alchemy-viewer
  • XenHat/xdg-integration
6 results
Show changes
Commits on Source (43)
Showing
with 514 additions and 827 deletions
......@@ -31,7 +31,7 @@ variables:
before_script:
- virtualenv -p C:\Python39\python.exe .venv
- .\.venv\Scripts\activate.ps1
- pip3 install --upgrade autobuild -i https://ci-job-token:${CI_JOB_TOKEN}@git.alchemyviewer.org/api/v4/projects/54/packages/pypi/simple --extra-index-url https://pypi.org/simple
- pip3 install --upgrade autobuild -i https://ci-job-token:${CI_JOB_TOKEN}@git.alchemyviewer.org/api/v4/projects/54/packages/pypi/simple
script:
- autobuild configure -c ReleaseOS -- -DUSE_FMODSTUDIO=ON -DUSE_NVAPI=ON -DUSE_LTO=ON -DDISABLE_FATAL_WARNINGS=ON -DREVISION_FROM_VCS=FALSE
- autobuild build -c ReleaseOS --no-configure
......@@ -88,7 +88,7 @@ variables:
before_script:
- virtualenv .venv -p python3
- source .venv/bin/activate
- pip3 install --upgrade autobuild dmgbuild -i https://ci-job-token:${CI_JOB_TOKEN}@git.alchemyviewer.org/api/v4/projects/54/packages/pypi/simple --extra-index-url https://pypi.org/simple
- pip3 install --upgrade autobuild dmgbuild -i https://ci-job-token:${CI_JOB_TOKEN}@git.alchemyviewer.org/api/v4/projects/54/packages/pypi/simple
script:
- autobuild configure -c ReleaseOS -- -DUSE_FMODSTUDIO=ON -DUSE_NVAPI=ON -DUSE_LTO=ON -DDISABLE_FATAL_WARNINGS=ON -DREVISION_FROM_VCS=FALSE
- autobuild build -c ReleaseOS --no-configure
......@@ -141,7 +141,7 @@ variables:
before_script:
- virtualenv .venv -p python3
- source .venv/bin/activate
- pip3 install --upgrade autobuild -i https://ci-job-token:${CI_JOB_TOKEN}@git.alchemyviewer.org/api/v4/projects/54/packages/pypi/simple --extra-index-url https://pypi.org/simple
- pip3 install --upgrade autobuild -i https://ci-job-token:${CI_JOB_TOKEN}@git.alchemyviewer.org/api/v4/projects/54/packages/pypi/simple
script:
- autobuild configure -c ReleaseOS -- -DUSE_FMODSTUDIO=ON -DUSE_NVAPI=ON -DUSE_LTO=ON -DDISABLE_FATAL_WARNINGS=ON -DREVISION_FROM_VCS=FALSE
- autobuild build -c ReleaseOS --no-configure
......@@ -167,7 +167,7 @@ variables:
- build-linux-*/packages/lib/release/libopenal.so*
- build-linux-*/packages/lib/release/libopenjp2.so*
- build-linux-*/packages/lib/release/libSDL2*.so*
- build-linux-*/newview/Alchemy_*.tar.xz
- build-linux-*/newview/Alchemy_*.tar.*
- build-linux-*/newview/alchemy-bin
- build-linux-*/newview/alchemy-bin.debug
- build-linux-*/newview/alchemy-bin.src.zip
......@@ -198,7 +198,7 @@ coverity_scan:
before_script:
- virtualenv .venv -p python3
- source .venv/bin/activate
- pip3 install --upgrade autobuild -i https://ci-job-token:${CI_JOB_TOKEN}@git.alchemyviewer.org/api/v4/projects/54/packages/pypi/simple --extra-index-url https://pypi.org/simple
- pip3 install --upgrade autobuild -i https://ci-job-token:${CI_JOB_TOKEN}@git.alchemyviewer.org/api/v4/projects/54/packages/pypi/simple
script:
- cov-configure --template --comptype clangcc --compiler clang-12
- cov-configure --template --comptype clangcxx --compiler clang++-12
......@@ -396,7 +396,7 @@ build:release:windows64:
Push-Location ./build-linux-64/
Push-Location ./newview/
$FileNameLnx64 = Get-ChildItem -Path . -Name -Include Alchemy_*.tar.xz
$FileNameLnx64 = Get-ChildItem -Path . -Name -Include Alchemy_*.tar.*
Invoke-WebRequest @UploadParams -InFile ./$FileNameLnx64 -Uri "${UploadDestURL}/${FileNameLnx64}"
If ($env:USE_SENTRY -eq 'TRUE')
......
This diff is collapsed.
......@@ -38,7 +38,7 @@ FetchContent_Declare(
# FetchContent_Declare(
# Catch2
# GIT_REPOSITORY https://github.com/catchorg/Catch2.git
# GIT_TAG v2.11.0
# GIT_TAG v2.13.7
# )
FetchContent_Declare(
fmt
......@@ -48,7 +48,7 @@ FetchContent_Declare(
FetchContent_Declare(
nlohmann_json
GIT_REPOSITORY https://git.alchemyviewer.org/alchemy/mirrors/modernjson.git
GIT_TAG v3.10.1
GIT_TAG v3.10.2
)
FetchContent_Declare(
......
......@@ -66,6 +66,7 @@ if (WINDOWS)
elseif (LINUX)
set_target_properties(SLPlugin
PROPERTIES
LINK_FLAGS "-Wl,--disable-new-dtags"
SKIP_BUILD_RPATH FALSE
BUILD_WITH_INSTALL_RPATH TRUE
INSTALL_RPATH "$ORIGIN/../lib;$ORIGIN/llplugin")
......
......@@ -856,7 +856,7 @@ LLWindowWin32::LLWindowWin32(LLWindowCallbacks* callbacks,
LLCoordScreen windowPos(x,y);
LLCoordScreen windowSize(window_rect.right - window_rect.left,
window_rect.bottom - window_rect.top);
if (!switchContext(mFullscreen, windowSize, TRUE, &windowPos))
if (!switchContext(mFullscreen, windowSize, disable_vsync, &windowPos))
{
return;
}
......
......@@ -106,6 +106,7 @@ class MediaPluginCEF :
bool mCanPaste;
bool mCanDelete;
bool mCanSelectAll;
std::string mUserDataPath;
std::string mRootCachePath;
std::string mCachePath;
std::string mContextCachePath;
......@@ -580,6 +581,8 @@ void MediaPluginCEF::receiveMessage(const char* message_string)
// and set it to white
settings.background_color = 0xffffffff; // white
settings.user_data_path = mUserDataPath;
settings.cache_enabled = true;
settings.root_cache_path = mRootCachePath;
settings.cache_path = mCachePath;
......@@ -671,16 +674,18 @@ void MediaPluginCEF::receiveMessage(const char* message_string)
std::string user_data_path_cache = message_in.getValue("cache_path");
std::string subfolder = message_in.getValue("username");
mRootCachePath = user_data_path_cache + "cef_cache";
if (!subfolder.empty())
{
std::string delim;
std::string delim;
#if LL_WINDOWS
// media plugin doesn't have access to gDirUtilp
delim = "\\";
// media plugin doesn't have access to gDirUtilp
delim = "\\";
#else
delim = "/";
delim = "/";
#endif
mRootCachePath = user_data_path_cache + "cef_cache";
if (!subfolder.empty())
{
mCachePath = mRootCachePath + delim + subfolder;
}
else
......@@ -688,6 +693,14 @@ void MediaPluginCEF::receiveMessage(const char* message_string)
mCachePath = mRootCachePath;
}
mContextCachePath = ""; // disabled by ""
mUserDataPath = user_data_path_cache + "cef_data";
if (!subfolder.empty())
{
mUserDataPath += delim + subfolder;
}
mCefLogFile = message_in.getValue("cef_log_file");
mCefLogVerbose = message_in.getValueBoolean("cef_verbose_log");
}
......
version 33
version 34
// The version number above should be incremented IF AND ONLY IF some
// change has been made that is sufficiently important to justify
// resetting the graphics preferences of all users to the recommended
......@@ -247,7 +247,7 @@ WLSkyDetail 1 48
RenderFSAASamples 1 8
//
// High Ultra Graphics Settings (deferred + SSAO + shadows)
// High Ultra Graphics Settings (deferred + SSAO)
//
list HighUltra
RenderAnisotropicLevel 1 8
......@@ -271,7 +271,7 @@ RenderVolumeLODFactor 1 1.125
WindLightUseAtmosShaders 1 1
RenderDeferred 1 1
RenderDeferredSSAO 1 1
RenderShadowDetail 1 2
RenderShadowDetail 1 0
WLSkyDetail 1 48
RenderFSAASamples 1 16
......
version 28
version 29
// The version number above should be incremented IF AND ONLY IF some
// change has been made that is sufficiently important to justify
// resetting the graphics preferences of all users to the recommended
......@@ -247,7 +247,7 @@ WLSkyDetail 1 48
RenderFSAASamples 1 2
//
// High Ultra Graphics Settings (deferred + SSAO + shadows)
// High Ultra Graphics Settings (deferred + SSAO)
//
list HighUltra
RenderAnisotropicLevel 1 8
......@@ -271,7 +271,7 @@ RenderVolumeLODFactor 1 1.125
WindLightUseAtmosShaders 1 1
RenderDeferred 1 1
RenderDeferredSSAO 1 1
RenderShadowDetail 1 2
RenderShadowDetail 1 0
WLSkyDetail 1 48
RenderFSAASamples 1 2
......
version 37
version 38
// The version number above should be incremented IF AND ONLY IF some
// change has been made that is sufficiently important to justify
// resetting the graphics preferences of all users to the recommended
......@@ -247,7 +247,7 @@ WLSkyDetail 1 48
RenderFSAASamples 1 2
//
// High Ultra Graphics Settings (deferred + SSAO + shadows)
// High Ultra Graphics Settings (deferred + SSAO)
//
list HighUltra
RenderAnisotropicLevel 1 4
......@@ -271,7 +271,7 @@ RenderVolumeLODFactor 1 1.125
WindLightUseAtmosShaders 1 1
RenderDeferred 1 1
RenderDeferredSSAO 1 1
RenderShadowDetail 1 2
RenderShadowDetail 1 0
WLSkyDetail 1 48
RenderFSAASamples 1 2
......
......@@ -4373,6 +4373,11 @@ void LLAppViewer::purgeCache()
// cef does not support clear_cache and clear_cookies, so clear what we can manually.
gDirUtilp->deleteDirAndContents(browser_cache);
}
std::string browser_data = gDirUtilp->getExpandedFilename(LL_PATH_CACHE, "cef_data");
if (LLFile::isdir(browser_data))
{
gDirUtilp->deleteDirAndContents(browser_data);
}
gDirUtilp->deleteFilesInDir(gDirUtilp->getExpandedFilename(LL_PATH_CACHE, ""), "*");
}
......
......@@ -79,7 +79,6 @@
// Sentry (https://sentry.io) crash reporting tool
#if defined(USE_SENTRY)
#include <sentry.h>
#include "llviewerbuildconfig.h"
#endif
namespace
......@@ -144,7 +143,10 @@ bool create_app_mutex()
}
#if USE_NVAPI
#define NVAPI_APPNAME L"Second Life"
#define ALWSTR_SIZE(inwstr) ((inwstr.size() + 1) * sizeof(wchar_t))
static std::wstring NVAPI_APPNAME = TEXT("Alchemy Viewer");
/*
This function is used to print to the command line a text message
......@@ -154,7 +156,7 @@ void nvapi_error(NvAPI_Status status)
{
NvAPI_ShortString szDesc = { 0 };
NvAPI_GetErrorMessage(status, szDesc);
LL_WARNS() << szDesc << LL_ENDL;
LL_WARNS() << "nvapi error: " << szDesc << LL_ENDL;
//should always trigger when asserts are enabled
//llassert(status == NVAPI_OK);
......@@ -170,60 +172,131 @@ void ll_nvapi_init(NvDRSSessionHandle hSession)
return;
}
NvAPI_UnicodeString wsz = { 0 };
memcpy_s(wsz, sizeof(wsz), NVAPI_APPNAME, sizeof(NVAPI_APPNAME));
status = NvAPI_DRS_SetCurrentGlobalProfile(hSession, wsz);
if (status != NVAPI_OK)
{
nvapi_error(status);
return;
}
NvAPI_UnicodeString profile_name = {};
memcpy_s(profile_name, sizeof(profile_name), NVAPI_APPNAME.c_str(), ALWSTR_SIZE(NVAPI_APPNAME));
// (3) Obtain the current profile.
NvDRSProfileHandle hProfile = 0;
status = NvAPI_DRS_GetCurrentGlobalProfile(hSession, &hProfile);
if (status != NVAPI_OK)
// Check if we already have a Alchmey Viewer profile
status = NvAPI_DRS_FindProfileByName(hSession, profile_name, &hProfile);
if (status != NVAPI_OK && status != NVAPI_PROFILE_NOT_FOUND)
{
nvapi_error(status);
return;
}
else if (status == NVAPI_PROFILE_NOT_FOUND)
{
// Don't have a Alchemy Viewer profile yet - create one
LL_INFOS() << "Creating Alchemy Viewer profile for NVIDIA driver" << LL_ENDL;
// load settings for querying
status = NvAPI_DRS_LoadSettings(hSession);
if (status != NVAPI_OK)
NVDRS_PROFILE profileInfo;
profileInfo.version = NVDRS_PROFILE_VER;
profileInfo.isPredefined = 0;
memcpy_s(profileInfo.profileName, sizeof(profileInfo.profileName), NVAPI_APPNAME.c_str(), ALWSTR_SIZE(NVAPI_APPNAME));
status = NvAPI_DRS_CreateProfile(hSession, &profileInfo, &hProfile);
if (status != NVAPI_OK)
{
nvapi_error(status);
return;
}
// set the preferred power management mode
{
NVDRS_SETTING drsSetting = {};
drsSetting.version = NVDRS_SETTING_VER;
drsSetting.settingId = PREFERRED_PSTATE_ID;
drsSetting.settingType = NVDRS_DWORD_TYPE;
drsSetting.u32CurrentValue = PREFERRED_PSTATE_PREFER_MAX;
status = NvAPI_DRS_SetSetting(hSession, hProfile, &drsSetting);
if (status != NVAPI_OK)
{
nvapi_error(status);
return;
}
LL_INFOS() << "Set preferred power management mode" << LL_ENDL;
}
// set the preferred opengl threading state
{
NVDRS_SETTING drsSetting = {};
drsSetting.version = NVDRS_SETTING_VER;
drsSetting.settingId = OGL_THREAD_CONTROL_ID;
drsSetting.settingType = NVDRS_DWORD_TYPE;
drsSetting.u32CurrentValue = OGL_THREAD_CONTROL_ENABLE;
status = NvAPI_DRS_SetSetting(hSession, hProfile, &drsSetting);
if (status != NVAPI_OK)
{
nvapi_error(status);
return;
}
LL_INFOS() << "Set preferred GL Threading mode" << LL_ENDL;
}
// apply our changes to the system
status = NvAPI_DRS_SaveSettings(hSession);
if (status != NVAPI_OK)
{
nvapi_error(status);
return;
}
}
// Check if current exe is part of the profile
std::string exe_name = gDirUtilp->getExecutableFilename();
NVDRS_APPLICATION profile_application = {};
profile_application.version = NVDRS_APPLICATION_VER;
std::wstring w_exe_name = ll_convert_string_to_wide(exe_name);
size_t w_exe_bytes = ALWSTR_SIZE(w_exe_name);
NvAPI_UnicodeString profile_app_name = {};
memcpy_s(profile_app_name, sizeof(profile_app_name), w_exe_name.c_str(), w_exe_bytes);
status = NvAPI_DRS_GetApplicationInfo(hSession, hProfile, profile_app_name, &profile_application);
if (status != NVAPI_OK && status != NVAPI_EXECUTABLE_NOT_FOUND)
{
nvapi_error(status);
return;
}
else if (status == NVAPI_EXECUTABLE_NOT_FOUND)
{
LL_INFOS() << "Creating application for " << exe_name << " for NVIDIA driver" << LL_ENDL;
// Add this exe to the profile
NVDRS_APPLICATION application = {};
application.version = NVDRS_APPLICATION_VER;
application.isPredefined = 0;
memcpy_s(application.appName, sizeof(application.appName), w_exe_name.c_str(), w_exe_bytes);
memcpy_s(application.launcher, sizeof(application.launcher), w_exe_name.c_str(), w_exe_bytes);
memcpy_s(application.userFriendlyName, sizeof(application.userFriendlyName), TEXT(LL_VIEWER_CHANNEL), sizeof(TEXT(LL_VIEWER_CHANNEL)));
//get the preferred power management mode for Second Life
NVDRS_SETTING drsSetting = {0};
drsSetting.version = NVDRS_SETTING_VER;
status = NvAPI_DRS_GetSetting(hSession, hProfile, PREFERRED_PSTATE_ID, &drsSetting);
if (status == NVAPI_SETTING_NOT_FOUND)
{ //only override if the user hasn't specifically set this setting
// (4) Specify that we want the VSYNC disabled setting
// first we fill the NVDRS_SETTING struct, then we call the function
drsSetting.version = NVDRS_SETTING_VER;
drsSetting.settingId = PREFERRED_PSTATE_ID;
drsSetting.settingType = NVDRS_DWORD_TYPE;
drsSetting.u32CurrentValue = PREFERRED_PSTATE_PREFER_MAX;
status = NvAPI_DRS_SetSetting(hSession, hProfile, &drsSetting);
status = NvAPI_DRS_CreateApplication(hSession, hProfile, &application);
if (status != NVAPI_OK)
{
nvapi_error(status);
return;
}
// apply our changes to the system
status = NvAPI_DRS_SaveSettings(hSession);
if (status != NVAPI_OK)
{
nvapi_error(status);
return;
}
}
// (5) Now we apply (or save) our changes to the system
status = NvAPI_DRS_SaveSettings(hSession);
if (status != NVAPI_OK)
{
nvapi_error(status);
return;
}
// load settings for querying
status = NvAPI_DRS_LoadSettings(hSession);
if (status != NVAPI_OK)
{
nvapi_error(status);
return;
}
else if (status != NVAPI_OK)
// apply our changes to the system
status = NvAPI_DRS_SaveSettings(hSession);
if (status != NVAPI_OK)
{
nvapi_error(status);
return;
......@@ -292,24 +365,22 @@ int APIENTRY WINMAIN(HINSTANCE hInstance,
}
#if USE_NVAPI
NvAPI_Status status;
// Initialize NVAPI
status = NvAPI_Initialize();
NvDRSSessionHandle hSession = 0;
NvAPI_Status nvStatus = NvAPI_Initialize();
NvDRSSessionHandle nvhSession = 0;
if (status == NVAPI_OK)
if (nvStatus == NVAPI_OK)
{
// Create the session handle to access driver settings
status = NvAPI_DRS_CreateSession(&hSession);
if (status != NVAPI_OK)
nvStatus = NvAPI_DRS_CreateSession(&nvhSession);
if (nvStatus != NVAPI_OK)
{
nvapi_error(status);
nvapi_error(nvStatus);
}
else
{
//override driver setting as needed
ll_nvapi_init(hSession);
ll_nvapi_init(nvhSession);
}
}
#endif
......@@ -372,11 +443,21 @@ int APIENTRY WINMAIN(HINSTANCE hInstance,
#if USE_NVAPI
// (NVAPI) (6) We clean up. This is analogous to doing a free()
if (hSession)
if (nvhSession)
{
NvAPI_DRS_DestroySession(nvhSession);
nvhSession = 0;
}
if (nvStatus == NVAPI_OK)
{
NvAPI_DRS_DestroySession(hSession);
hSession = 0;
nvStatus = NvAPI_Unload();
if (nvStatus != NVAPI_OK)
{
nvapi_error(nvStatus);
}
}
#endif
#if defined(USE_SENTRY)
......
......@@ -2102,19 +2102,19 @@ void LLDrawPoolAvatar::renderRigged(LLVOAvatar* avatar, U32 type, bool glow)
// if this is alpha mask content and we're doing opaques or a non-alpha-mask shadow pass...
if (is_alpha_mask && (LLDrawPoolAvatar::sSkipTransparent || LLDrawPoolAvatar::sShadowPass != SHADOW_PASS_ATTACHMENT_ALPHA_MASK))
{
return;
continue;
}
// if this is alpha blend content and we're doing opaques or a non-alpha-blend shadow pass...
if (is_alpha_blend && (LLDrawPoolAvatar::sSkipTransparent || LLDrawPoolAvatar::sShadowPass != SHADOW_PASS_ATTACHMENT_ALPHA_BLEND))
{
return;
continue;
}
// if this is opaque content and we're skipping opaques...
if (!is_alpha_mask && !is_alpha_blend && LLDrawPoolAvatar::sSkipOpaque)
{
return;
continue;
}
}
......
......@@ -213,21 +213,23 @@ void notify_of_message(const LLSD& msg, bool is_dnd_msg)
}
else
{
user_preferences = gSavedSettings.getString("NotificationNearbyChatOptions");
user_preferences = gSavedSettings.getString("NotificationNearbyChatOptions");
if (!gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundNearbyChatIM") == TRUE))
{
make_ui_sound("UISndNewIncomingIMSession");
}
}
}
}
else if(session->isP2PSessionType())
{
if (LLAvatarTracker::instance().isBuddy(participant_id))
if (const LLRelationship* buddy_info = LLAvatarTracker::instance().getBuddyInfo(participant_id))
{
user_preferences = gSavedSettings.getString("NotificationFriendIMOptions");
if (!gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundFriendIM") == TRUE))
{
make_ui_sound("UISndNewIncomingIMSession");
if (buddy_info->isOnline()) {
user_preferences = gSavedSettings.getString("NotificationFriendIMOptions");
if (!gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundFriendIM") == TRUE))
{
make_ui_sound("UISndNewIncomingIMSession");
}
}
}
else
......@@ -236,8 +238,8 @@ void notify_of_message(const LLSD& msg, bool is_dnd_msg)
if (!gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundNonFriendIM") == TRUE))
{
make_ui_sound("UISndNewIncomingIMSession");
}
}
}
}
}
else if(session->isAdHocSessionType())
{
......@@ -245,7 +247,7 @@ void notify_of_message(const LLSD& msg, bool is_dnd_msg)
if (!gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundConferenceIM") == TRUE))
{
make_ui_sound("UISndNewIncomingIMSession");
}
}
}
else if(session->isGroupSessionType())
{
......
......@@ -2134,7 +2134,6 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
{
gDeferredFullbrightProgram.mName = "Deferred Fullbright Shader";
gDeferredFullbrightProgram.mFeatures.calculatesAtmospherics = true;
gDeferredFullbrightProgram.mFeatures.hasAtmospherics = true;
gDeferredFullbrightProgram.mFeatures.hasGamma = true;
gDeferredFullbrightProgram.mFeatures.hasTransport = true;
gDeferredFullbrightProgram.mFeatures.hasSrgb = true;
......
......@@ -880,8 +880,13 @@ bool LLVivoxVoiceClient::startAndLaunchDaemon()
params.args.add(".log");
// rotate any existing log
std::string new_log = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "SLVoice.log");
std::string old_log = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "SLVoice.old");
if (gDirUtilp->fileExists(old_log))
{
LLFile::remove(old_log);
}
std::string new_log = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "SLVoice.log");
if (gDirUtilp->fileExists(new_log))
{
LLFile::rename(new_log, old_log);
......
......@@ -8732,11 +8732,11 @@ void LLPipeline::bindDeferredShader(LLGLSLShader& shader, LLRenderTarget* light_
F32 ssao_factor = RenderSSAOFactor;
shader.uniform1f(LLShaderMgr::DEFERRED_SSAO_FACTOR, ssao_factor);
LLVector3 ssao_effect = RenderSSAOEffect;
shader.uniform1f(LLShaderMgr::DEFERRED_SSAO_EFFECT, ssao_effect[0]);
}
LLVector3 ssao_effect = RenderSSAOEffect;
shader.uniform1f(LLShaderMgr::DEFERRED_SSAO_EFFECT, ssao_effect[0]);
shader.uniform2f(LLShaderMgr::DEFERRED_SCREEN_RES, deferred_target->getWidth(), deferred_target->getHeight());
if (shader.getUniformLocation(LLShaderMgr::DEFERRED_NEAR_CLIP) > -1)
......@@ -8758,6 +8758,11 @@ void LLPipeline::bindDeferredShader(LLGLSLShader& shader, LLRenderTarget* light_
shader.uniform4fv(LLShaderMgr::SUNLIGHT_COLOR, 1, mSunDiffuse.mV);
shader.uniform4fv(LLShaderMgr::MOONLIGHT_COLOR, 1, mMoonDiffuse.mV);
LLEnvironment& environment = LLEnvironment::instance();
const LLSettingsSky::ptr_t& sky = environment.getCurrentSky();
static_cast<LLSettingsVOSky*>(sky.get())->updateShader(&shader);
}
LLColor3 pow3f(LLColor3 v, F32 f)
......
......@@ -565,9 +565,12 @@ def construct(self):
self.path("libcef.dll")
self.path("libEGL.dll")
self.path("libGLESv2.dll")
self.path("vk_swiftshader.dll")
self.path("vulkan-1.dll")
self.path("dullahan_host.exe")
self.path("snapshot_blob.bin")
self.path("v8_context_snapshot.bin")
self.path("vk_swiftshader_icd.json")
# CEF software renderer files
with self.prefix(src=os.path.join(pkgdir, 'bin', config, 'swiftshader'), dst='swiftshader'):
......@@ -1131,11 +1134,14 @@ def construct(self):
self.path("dullahan_host")
self.path("snapshot_blob.bin")
self.path("v8_context_snapshot.bin")
self.path("vk_swiftshader_icd.json")
with self.prefix(src=os.path.join(pkgdir, 'lib', 'release'), dst=os.path.join('bin', 'llplugin')):
self.path("libcef.so")
self.path("libEGL.so")
self.path("libGLESv2.so")
self.path("libvk_swiftshader.so")
self.path("libvulkan.so.1")
with self.prefix(src=os.path.join(pkgdir, 'resources'), dst=os.path.join('bin', 'llplugin')):
self.path("chrome_100_percent.pak")
......@@ -1167,7 +1173,7 @@ def package_finish(self):
self.run_command(['find', self.get_dst_prefix(),
'-type', 'f', '-perm', old,
'-exec', 'chmod', new, '{}', ';'])
self.package_file = installer_name + '.tar.xz'
self.package_file = installer_name + '.tar.bz2'
# temporarily move directory tree so that it has the right
# name in the tarfile
......@@ -1180,10 +1186,10 @@ def package_finish(self):
# --numeric-owner hides the username of the builder for
# security etc.
self.run_command(['tar', '-C', self.get_build_prefix(),
'--numeric-owner', '-cJf',
tempname + '.tar.xz', installer_name])
'--numeric-owner', '-cjf',
tempname + '.tar.bz2', installer_name])
else:
print("Skipping %s.tar.xz for non-Release build (%s)" % \
print("Skipping %s.tar.bz2 for non-Release build (%s)" % \
(installer_name, self.args['buildtype']))
finally:
self.run_command(["mv", tempname, realname])
......@@ -1229,7 +1235,7 @@ def construct(self):
self.path("libfmod.so*")
# Vivox runtimes
with self.prefix(src=relpkgdir, dst="bin"):
with self.prefix(src=os.path.join(pkgdir, 'bin', 'release'), dst="bin"):
self.path("SLVoice")
with self.prefix(src=relpkgdir, dst="lib"):
self.path("libortp.so")
......@@ -1271,7 +1277,7 @@ def construct(self):
self.path("libfmod.so*")
# Vivox runtimes
with self.prefix(src=relpkgdir, dst="bin"):
with self.prefix(src=os.path.join(pkgdir, 'bin', 'release'), dst="bin"):
self.path("SLVoice")
with self.prefix(src=relpkgdir, dst="lib"):
self.path("libortp.so")
......