mirror of
https://github.com/overte-org/overte.git
synced 2025-08-10 10:13:15 +02:00
Merge pull request #3670 from samcake/temp0
Add NSIGHT profiling information to the Build
This commit is contained in:
commit
fc3f27b70a
4 changed files with 85 additions and 5 deletions
49
cmake/modules/FindNSIGHT.cmake
Normal file
49
cmake/modules/FindNSIGHT.cmake
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#
|
||||||
|
# FindNSIGHT.cmake
|
||||||
|
#
|
||||||
|
# Try to find NSIGHT NvToolsExt library and include path.
|
||||||
|
# Once done this will define
|
||||||
|
#
|
||||||
|
# NSIGHT_FOUND
|
||||||
|
# NSIGHT_INCLUDE_DIRS
|
||||||
|
# NSIGHT_LIBRARIES
|
||||||
|
#
|
||||||
|
# Created on 10/27/2014 by Sam Gateau
|
||||||
|
# Copyright 2014 High Fidelity, Inc.
|
||||||
|
#
|
||||||
|
# Distributed under the Apache License, Version 2.0.
|
||||||
|
# See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
#
|
||||||
|
|
||||||
|
if (WIN32)
|
||||||
|
|
||||||
|
find_path(NSIGHT_INCLUDE_DIRS
|
||||||
|
NAMES
|
||||||
|
nvToolsExt.h
|
||||||
|
PATH_SUFFIXES
|
||||||
|
include
|
||||||
|
PATHS
|
||||||
|
"C:/Program Files/NVIDIA Corporation/NvToolsExt")
|
||||||
|
|
||||||
|
find_library(NSIGHT_LIBRARY_RELEASE nvToolsExt32_1
|
||||||
|
PATH_SUFFIXES
|
||||||
|
"lib/Win32" "lib"
|
||||||
|
PATHS
|
||||||
|
"C:/Program Files/NVIDIA Corporation/NvToolsExt")
|
||||||
|
find_library(NSIGHT_LIBRARY_DEBUG nvToolsExt32_1
|
||||||
|
PATH_SUFFIXES
|
||||||
|
"lib/Win32" "lib"
|
||||||
|
PATHS
|
||||||
|
"C:/Program Files/NVIDIA Corporation/NvToolsExt")
|
||||||
|
|
||||||
|
include(SelectLibraryConfigurations)
|
||||||
|
select_library_configurations(NSIGHT)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
set(NSIGHT_LIBRARIES "${NSIGHT_LIBRARY}")
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
find_package_handle_standard_args(NSIGHT DEFAULT_MSG NSIGHT_INCLUDE_DIRS NSIGHT_LIBRARIES)
|
||||||
|
|
||||||
|
mark_as_advanced(NSIGHT_INCLUDE_DIRS NSIGHT_LIBRARIES NSIGHT_SEARCH_DIRS)
|
||||||
|
|
|
@ -226,11 +226,20 @@ else (APPLE)
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
find_package(GLEW REQUIRED)
|
find_package(GLEW REQUIRED)
|
||||||
include_directories(${GLEW_INCLUDE_DIRS})
|
include_directories(${GLEW_INCLUDE_DIRS})
|
||||||
|
|
||||||
# we're using static GLEW, so define GLEW_STATIC
|
# we're using static GLEW, so define GLEW_STATIC
|
||||||
add_definitions(-DGLEW_STATIC)
|
add_definitions(-DGLEW_STATIC)
|
||||||
|
|
||||||
target_link_libraries(${TARGET_NAME} "${GLEW_LIBRARIES}" wsock32.lib opengl32.lib)
|
target_link_libraries(${TARGET_NAME} "${GLEW_LIBRARIES}" "${NSIGHT_LIBRARIES}" wsock32.lib opengl32.lib)
|
||||||
|
|
||||||
|
# try to find the Nsight package and add it to the build if we find it
|
||||||
|
find_package(NSIGHT)
|
||||||
|
if (NSIGHT_FOUND)
|
||||||
|
include_directories(${NSIGHT_INCLUDE_DIRS})
|
||||||
|
add_definitions(-DNSIGHT_FOUND)
|
||||||
|
target_link_libraries(${TARGET_NAME} "${NSIGHT_LIBRARIES}")
|
||||||
|
endif ()
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
endif (APPLE)
|
endif (APPLE)
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,23 @@
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#if defined(NSIGHT_FOUND)
|
||||||
|
#include "nvToolsExt.h"
|
||||||
|
class ProfileRange {
|
||||||
|
public:
|
||||||
|
ProfileRange(const char *name) {
|
||||||
|
nvtxRangePush(name);
|
||||||
|
}
|
||||||
|
~ProfileRange() {
|
||||||
|
nvtxRangePop();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#define PROFILE_RANGE(name) ProfileRange profileRangeThis(name);
|
||||||
|
#else
|
||||||
|
#define PROFILE_RANGE(name)
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace gpu {
|
namespace gpu {
|
||||||
|
|
||||||
class Batch;
|
class Batch;
|
||||||
|
|
|
@ -395,6 +395,7 @@ void Model::setJointStates(QVector<JointState> states) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Model::render(float alpha, RenderMode mode, RenderArgs* args) {
|
bool Model::render(float alpha, RenderMode mode, RenderArgs* args) {
|
||||||
|
PROFILE_RANGE(__FUNCTION__);
|
||||||
// render the attachments
|
// render the attachments
|
||||||
foreach (Model* attachment, _attachments) {
|
foreach (Model* attachment, _attachments) {
|
||||||
attachment->render(alpha, mode);
|
attachment->render(alpha, mode);
|
||||||
|
@ -560,8 +561,11 @@ bool Model::render(float alpha, RenderMode mode, RenderArgs* args) {
|
||||||
GLBATCH(glBindTexture)(GL_TEXTURE_2D, 0);
|
GLBATCH(glBindTexture)(GL_TEXTURE_2D, 0);
|
||||||
|
|
||||||
// Render!
|
// Render!
|
||||||
::gpu::backend::renderBatch(batch);
|
{
|
||||||
batch.clear();
|
PROFILE_RANGE("render Batch");
|
||||||
|
::gpu::backend::renderBatch(batch);
|
||||||
|
batch.clear();
|
||||||
|
}
|
||||||
|
|
||||||
// restore all the default material settings
|
// restore all the default material settings
|
||||||
Application::getInstance()->setupWorldLight();
|
Application::getInstance()->setupWorldLight();
|
||||||
|
@ -1551,6 +1555,7 @@ void Model::segregateMeshGroups() {
|
||||||
int Model::renderMeshes(gpu::Batch& batch, RenderMode mode, bool translucent, float alphaThreshold,
|
int Model::renderMeshes(gpu::Batch& batch, RenderMode mode, bool translucent, float alphaThreshold,
|
||||||
bool hasTangents, bool hasSpecular, bool isSkinned, RenderArgs* args) {
|
bool hasTangents, bool hasSpecular, bool isSkinned, RenderArgs* args) {
|
||||||
|
|
||||||
|
PROFILE_RANGE(__FUNCTION__);
|
||||||
bool dontCullOutOfViewMeshParts = Menu::getInstance()->isOptionChecked(MenuOption::DontCullOutOfViewMeshParts);
|
bool dontCullOutOfViewMeshParts = Menu::getInstance()->isOptionChecked(MenuOption::DontCullOutOfViewMeshParts);
|
||||||
bool cullTooSmallMeshParts = !Menu::getInstance()->isOptionChecked(MenuOption::DontCullTooSmallMeshParts);
|
bool cullTooSmallMeshParts = !Menu::getInstance()->isOptionChecked(MenuOption::DontCullTooSmallMeshParts);
|
||||||
bool dontReduceMaterialSwitches = Menu::getInstance()->isOptionChecked(MenuOption::DontReduceMaterialSwitches);
|
bool dontReduceMaterialSwitches = Menu::getInstance()->isOptionChecked(MenuOption::DontReduceMaterialSwitches);
|
||||||
|
|
Loading…
Reference in a new issue