NVIDIA FrameView SDK (Software Development Kit) — это инструмент, предназначенный для тестирования и анализа производительности графических карт NVIDIA на базе API DirectX 11 и DirectX 12. Он помогает разработчикам оптимизировать свои приложения для работы на GPU, обнаруживать узкие места и повышать производительность графики.
Набор инструментов NVIDIA FrameView включает в себя библиотеки и API для измерения времени рендеринга кадров, использования памяти видеокарты и переключения контекстов рендеринга. Он также предоставляет различные настройки для контроля анализируемой графической информации и задержки обновления монитора.
Пример кода для использования библиотеки NVIDIA FrameView SDK:
c++ #include #include #include #include #include using namespace std; int main() < NvAPI_Status status; status = NvAPI_Initialize(); if(status != NVAPI_OK) return -1; NvPhysicalGpuHandle gpuHandles[NVAPI_MAX_PHYSICAL_GPUS]; NvU32 gpuCount = 0; status = NvAPI_EnumPhysicalGPUs(gpuHandles, if(status != NVAPI_OK) return -1; NvDisplayHandle hDisplay; NvU32 pathCount = 0; NvU32 displayCount = 0; NvAPI_DISP_GetDisplayCount(gpuHandles[0], if(displayCount == 0) return -1; status = NvAPI_DISP_GetPathCount(gpuHandles[0], if(status != NVAPI_OK) return -1; status = NvAPI_DISP_GetAssociatedUnAttachedNvidiaDisplayHandle(gpuHandles[0], if(status != NVAPI_OK) return -1; NvU32 outputId = 0; status = NvAPI_GetAssociatedNvidiaDisplayHandle(hDisplay, if(status != NVAPI_OK) return -1; NvD3DDeviceHandle hDevice; D3D_FEATURE_LEVEL featureLevel = D3D_FEATURE_LEVEL_11_0; ID3D11Device *pDevice = nullptr; ID3D11DeviceContext *pContext = nullptr; D3D11CreateDevice(nullptr, D3D_DRIVER_TYPE_HARDWARE, nullptr, D3D11_CREATE_DEVICE_DEBUG, pDevice, nullptr, hDevice = NvAPI_D3D_GetObjectHandleForResource(pDevice); NvU32 numFrames = 300; NvU32 numSlices = 0; NvAPI_D3D11_CreateEvent(hDevice, hEvent); NvS32 fd = 0; NvU64 timeStamp = 0; NvAPI_FrameCaptureControl(hEvent, NV_FRAME_CAPTURE_CONTROL_START); for(int i = 0; i < numFrames; ++i) < // Render scene pContext->ClearRenderTargetView(renderTargetView, clearColor); // Передача данных в видеопамять pContext->CopyResource(destTexture, srcTexture); NvAPI_D3D11_SetDepthBoundsTestIface( NvAPI_D3D11_PushDepthBoundsTestState(hDevice, NVAPI_DEPTH_BOUNDS_TEST_BEGIN); NvAPI_D3D11_PopDepthBoundsTestState(hDevice, NVAPI_DEPTH_BOUNDS_TEST_END); pContext->CopySubresourceRegion(tex, 0, 0, 0, 0, destTexture, 0, nullptr); NvAPI_FrameCaptureControl(hEvent, NV_FRAME_CAPTURE_CONTROL_SNAPSHOT); NvAPI_D3D11_GetVBlankCounter(hDevice, timeStamp); > NvAPI_FrameCaptureControl(hEvent, NV_FRAME_CAPTURE_CONTROL_STOP); NvAPI_D3D11_DestroyEvent(hEvent); pContext->Release(); pDevice->Release(); return 0; >
В этом примере используется функционал для измерения времени рендеринга кадров и переключения контекстов рендеринга с помощью библиотеки NVIDIA FrameView SDK в связке с DirectX 11 и DirectX 12. Это позволяет оптимизировать производительность графических приложений для видеокарт NVIDIA, используя инструментарий NVIDIA FrameView SDK.
Installing & Using Frameview
FrameView. И что не так с тестами железа?
Источник: progery.ru
Приложение FrameView
FrameView — это приложение для измерения частоты смены кадров, энергопотребления и производительности на ватт для широкого спектра видеокарт.
This application is not supported on mobile.
Смотреть видео
Достоверные данные о производительности и энергопотреблении
Все эти данные предоставляются в режиме реального времени в настраиваемом оверлее и записываются в файл журнала для удобного анализа с помощью PresentMon.
Широкая совместимость с приложениями и API
В отличие от других приложений, FrameView совместимо со многими видеокартами, всеми основными графическими API и приложениями универсальной платформы Windows (UWP). Кроме того, через API приложение записывает данные об энергопотреблении чипа и платы* в реальном времени, при этом собирая подробные сведения о производительности. Для работы FrameView не требуется специальное оборудование.
*Энергопотребление чипа и всей видеокарты с графическим процессором NVIDIA. Энергопотребление только чипа графического процессора AMD.
Источник: www.nvidia.com
Бенчмарк FrameView от NVIDIA отправился в бета-тест
Представители компании NVIDIA официально отправили свою новую утилиту FrameView для захвата частоты кадров в бета-тест. Теперь геймеры смогут с большей точностью проанализировать производительность видеокарты и убедиться, что она работает именно так, как должна. Новинка, фактически, является улучшенной версией утилиты PresentMon, только с дополнительными функциями от компании NVIDIA. Например, приложение позволяет отслеживать энергопотребление видеокарты, тогда как конкуренты вроде FRAPS или AMD OCAT (Open Capture and Analytics) такой функцией похвастаться не могут.
Правда, представители NVIDIA сообщают, что точность мониторинга энергопотребления с видеокартами AMD очень плохая, так как видеокарты этого производителя используют специфическое API.
«API энергопотребления AMD для графических процессоров сообщает о значении промежуточной мощности чипа и мощности платы, а не об истинных значениях. Поэтому вам придётся связаться с AMD и попросить их предоставить точные результаты из их собственного API», — сообщают представители NVIDIA.
Утилита FrameView разработана специально для того, чтобы вы получали информацию о производительности графического процессора в реальном времени. Разработчики продукта уверяют, что их программа предоставляет более высокую степень точности, чем другие инструменты, что делает FrameView более эффективным методом мониторинга и анализа. Также стоит отметить, что данное приложение собирает данные со всех основных API и практически со всех современных видеоигр с поддержкой DirectX 9-12, OpenGL, Vulkan и Universal Windows Platform (UWP).
На текущий момент FrameView находится в стадии бета-теста и вы можете попробовать новую технологию совершенно бесплатно — утилита уже доступна на официальном сайте.
Источник: www.playground.ru