diff options
author | Brad Linden <46733234+brad-linden@users.noreply.github.com> | 2024-11-22 16:19:26 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-22 16:19:26 -0800 |
commit | b7924f77c6bb7388ba9d1611c2332da9c101dde0 (patch) | |
tree | e7a841f4beda34c5e8ca57d77c10294c49b91b29 /indra/newview | |
parent | 3d3332692a08b5faaa0a4123d700ba7338b2090a (diff) | |
parent | 9a29f07bb2720e0d4774497390ef40bd8b04f5ea (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.txt | 41 | ||||
-rw-r--r-- | indra/newview/llfeaturemanager.cpp | 9 | ||||
-rwxr-xr-x | indra/newview/viewer_manifest.py | 52 |
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 |