summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorBrad Linden <46733234+brad-linden@users.noreply.github.com>2024-11-22 16:19:26 -0800
committerGitHub <noreply@github.com>2024-11-22 16:19:26 -0800
commitb7924f77c6bb7388ba9d1611c2332da9c101dde0 (patch)
treee7a841f4beda34c5e8ca57d77c10294c49b91b29 /indra/newview
parent3d3332692a08b5faaa0a4123d700ba7338b2090a (diff)
parent9a29f07bb2720e0d4774497390ef40bd8b04f5ea (diff)
Merge pull request #3141 from secondlife/brad/2744-cleanups
secondlife/viewer#2744 intel fallback cleanups
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/CMakeLists.txt41
-rw-r--r--indra/newview/llfeaturemanager.cpp9
-rwxr-xr-xindra/newview/viewer_manifest.py52
3 files changed, 75 insertions, 27 deletions
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 859ccbd4cd..5bcfddfe25 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -1799,6 +1799,47 @@ if (WINDOWS)
add_dependencies(${VIEWER_BINARY_NAME} stage_third_party_libs llcommon llwebrtc copy_w_viewer_manifest)
+ # Useful for remote debugging or profiling if set to target a shared drive. for example, brad sets it to "dist/secondlife" to deploy under
+ # the build tree (and then I share that directory) or "f:/dist/secondlife" to deploy to a network mounted drive (although this can be slow).
+ # this will also create an "unpacked" tarball at build-<platform>/newview/unpacked_<platform>_7_1_11_<build num>.tar
+ set(LOCAL_DIST_DIR "" CACHE PATH "Path for 'local' unpacked copy of viewer distribution to be deployed to.")
+ set(product SecondLife-${ARCH}-${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION})
+ if(IS_DIRECTORY ${LOCAL_DIST_DIR})
+ add_custom_command(
+ OUTPUT ${LOCAL_DIST_DIR}/.${product}.copy_touched
+ COMMAND ${PYTHON_EXECUTABLE}
+ ARGS
+ ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
+ "--actions=\"copy package unpacked\""
+ --arch=${ARCH}
+ --artwork=${ARTWORK_DIR}
+ "--bugsplat=${BUGSPLAT_DB}"
+ "--openal=${USE_OPENAL}"
+ "--tracy=${USE_TRACY}"
+ --build=${CMAKE_CURRENT_BINARY_DIR}
+ --buildtype=$<IF:$<BOOL:${LL_GENERATOR_IS_MULTI_CONFIG}>,$<CONFIG>,${CMAKE_BUILD_TYPE}>
+ "--channel=${VIEWER_CHANNEL}"
+ --configuration=$<CONFIG>
+ --dest=${LOCAL_DIST_DIR}
+ --grid=${GRID}
+ --source=${CMAKE_CURRENT_SOURCE_DIR}
+ --versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
+ --touch=${LOCAL_DIST_DIR}/.${product}.copy_touched
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
+ stage_third_party_libs
+ llwebrtc
+ ${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
+ ${COPY_INPUT_DEPENDENCIES}
+ ${VIEWER_BINARY_NAME}
+ COMMENT "Performing viewer_manifest local dist copy"
+ )
+
+ add_custom_target(copy_local_dist_viewer_manifest ALL DEPENDS ${LOCAL_DIST_DIR}/.${product}.copy_touched)
+ elseif (NOT LOCAL_DIST_DIR STREQUAL "")
+ message(FATAL_ERROR "LOCAL_DIST_DIR ${LOCAL_DIST_DIR} specified but is not valid target directory to copy viewer distribution into. Please create the directory and try again")
+ endif () # IS_DIRECTORY ${LOCAL_DIST_DIR}
+
if (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts)
add_dependencies(${VIEWER_BINARY_NAME} copy_win_scripts)
endif (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts)
diff --git a/indra/newview/llfeaturemanager.cpp b/indra/newview/llfeaturemanager.cpp
index c5d074a5e8..ae520ca5cd 100644
--- a/indra/newview/llfeaturemanager.cpp
+++ b/indra/newview/llfeaturemanager.cpp
@@ -655,7 +655,8 @@ void LLFeatureManager::applyBaseMasks()
if (gGLManager.mIsIntel)
{
maskFeatures("Intel");
- if (gGLManager.mGLVersion < 4.59f)
+ // check against 3.33 to avoid applying this fallback twice
+ if (gGLManager.mGLVersion < 4.59f && gGLManager.mGLVersion > 3.33f)
{
// if we don't have OpenGL 4.6 on intel, set it to OpenGL 3.3
// we also want to trigger the GL3 fallbacks on these chipsets
@@ -665,10 +666,12 @@ void LLFeatureManager::applyBaseMasks()
// https://docs.blender.org/manual/en/latest/troubleshooting/gpu/windows/intel.html#legacy-intel-hd-4000-5000
// https://www.intel.com/content/www/us/en/support/articles/000005524/graphics.html
// this will disable things like reflection probes, HDR, FXAA and SMAA
+ LL_INFOS("RenderInit") << "Applying Intel integrated pre-Haswell fallback. Downgrading feature usage to OpenGL 3.3" << LL_ENDL;
gGLManager.mGLVersion = llmin(gGLManager.mGLVersion, 3.33f);
- // and select GLSL version for OpenGL 3.3
+ gGLManager.mGLVersionString += " 3.3 fallback"; // for ViewerStats reporting
+ // and select GLSL version for OpenGL 3.2
gGLManager.mGLSLVersionMajor = 3;
- gGLManager.mGLSLVersionMinor = 30;
+ gGLManager.mGLSLVersionMinor = 20;
}
}
if (gGLManager.mIsApple)
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index b2f9654eb3..f9aaeabbfb 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -502,30 +502,34 @@ class Windows_x86_64_Manifest(ViewerManifest):
if self.is_packaging_viewer():
# Find secondlife-bin.exe in the 'configuration' dir, then rename it to the result of final_exe.
self.path(src='%s/secondlife-bin.exe' % self.args['configuration'], dst=self.final_exe())
- # Emit the whole app image as one of the GitHub step outputs. We
- # want the whole app -- but NOT the extraneous build products that
- # get tossed into the same directory, such as the installer and
- # the symbols tarball, so add exclusions. When we feed
- # upload-artifact multiple absolute pathnames, even just for
- # exclusion, it ends up creating several extraneous directory
- # levels within the artifact -- so try using only relative paths.
- # One problem: as of right now, our current directory os.getcwd()
- # is not the same as the initial working directory for this job
- # step, meaning paths relative to our os.getcwd() won't work for
- # the subsequent upload-artifact step. We're a couple directory
- # levels down. Try adjusting for those when specifying the base
- # for self.relpath().
- appbase = self.relpath(
- self.get_dst_prefix(),
- base=os.path.join(os.getcwd(), os.pardir, os.pardir))
- self.set_github_output('viewer_app', appbase,
- # except for this stuff
- *(('!' + os.path.join(appbase, pattern))
- for pattern in (
- 'secondlife-bin.*',
- '*_Setup.exe',
- '*.bat',
- '*.tar.xz')))
+
+ GITHUB_OUTPUT = os.getenv('GITHUB_OUTPUT')
+ if GITHUB_OUTPUT:
+ # Emit the whole app image as one of the GitHub step outputs. We
+ # want the whole app -- but NOT the extraneous build products that
+ # get tossed into the same directory, such as the installer and
+ # the symbols tarball, so add exclusions. When we feed
+ # upload-artifact multiple absolute pathnames, even just for
+ # exclusion, it ends up creating several extraneous directory
+ # levels within the artifact -- so try using only relative paths.
+ # One problem: as of right now, our current directory os.getcwd()
+ # is not the same as the initial working directory for this job
+ # step, meaning paths relative to our os.getcwd() won't work for
+ # the subsequent upload-artifact step. We're a couple directory
+ # levels down. Try adjusting for those when specifying the base
+ # for self.relpath().
+ appbase = self.relpath(
+ self.get_dst_prefix(),
+ base=os.path.join(os.getcwd(), os.pardir, os.pardir),
+ symlink=True)
+ self.set_github_output('viewer_app', appbase,
+ # except for this stuff
+ *(('!' + os.path.join(appbase, pattern))
+ for pattern in (
+ 'secondlife-bin.*',
+ '*_Setup.exe',
+ '*.bat',
+ '*.tar.xz')))
with self.prefix(src=os.path.join(pkgdir, "VMP")):
# include the compiled launcher scripts so that it gets included in the file_list