Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 10 Jul 2009
Offline Last Active Today, 11:09 AM

Topics I've Started

Vulkan Win32 WMI

06 March 2016 - 04:40 AM

Has anyone encountered a problem with deallocating Win32 surface using NVIDIA drivers?


Unfortunately, there is no appropriate tutorial how to deal with the window system integration (WMI). I followed the samples from the LunarG SDK and modified a bit in order to incorporate into my code (framework). All functions return VK_SUCCESS, however, with 356.39-vkonly_geforce_win8 drivers, the application crashes at Vulkan instance destroy. With 356.45-vkonly_geforce_win8 drivers, the application doesn't crash, but there is a memory leak (pretty the same as if I prevent the instance destroying with 356.39).



Detected memory leaks!

Dumping objects ->
{355} normal block at 0x06B223F0, 16 bytes long.
 Data: <` k     P       > 60 B1 6B 04 00 00 00 00 50 18 B2 06 00 00 00 00 
{349} normal block at 0x046BD9C8, 12 bytes long.
 Data: <            > 02 00 00 00 03 00 00 00 01 00 00 00 
{348} normal block at 0x046BD978, 16 bytes long.
 Data: <,       2       > 2C 00 00 00 00 00 00 00 32 00 00 00 00 00 00 00 



Also, is there any requirements for the window pixel format (like in OpenGL) in order to draw correctly on the surface?


So far it seems WMI is the most complicated part of the Vulkan. wacko.png

I hope after finishing correctly some interface functions for presentation on the windows I wouldn't have to change that code ever since.


Thanks in advance for any assistance or useful hints!


How to retrieve P-States?

19 August 2011 - 02:48 PM

Does anyone know how performance states (P-States) available on the particular GPU can be retrieved, and what is the current P-State?

I bet NVAPI can do that (of course for NV cards only), but the appropriate API is not published. NvAPI_GPU_GetDynamicPstatesInfoEx() retrieves only utilization (hidden function NvAPI_GPU_GetPStates does the same). I can get all current frequencies, but how to recognize which P-State they belong?

Thank you in advance!

How to change VBO by content of another?

28 January 2011 - 05:56 PM

Hi All,

In order to avoid unnecessary stress caused by walking an unknown path, I would rather ask the community to help me answer the following question:

How to change the content of one VBO by content of the other using OpenGL API?

It is not an ordinary copying. For example, I need to create an upsampled/downsampled version of data already stored in another VBO, or something similar. I have implemented it using CUDA, but that approach has several drawbacks:

1. The registering process (cudaGraphicsGLRegisterBuffer) is a pretty lengthy operation. Application initialization time becomes unacceptably long if I register all VBOs I want to use later.

2. Whenever a transformation should occur, buffers involved in the transformation have to be mapped (cudaGraphicsMapResources + cudaGraphicsResourceGetMappedPointer). Mapping requires all pending GL calls to finish before CUDA start to use the resources.

3. Unmapping (cudaGraphicsUnmapResources) also creates a stall in a pipeline waiting CUDA to finish all pending calls.

Much of the Map/Unmap times can be hidden by smart code reorganization, but cannot be completely eliminated. Application initialization (registering) is the most irritating issue. There are also other issues, but I believe they are driver dependent, and they currently make no trouble (like different VBO memory footprints after mapping with CUDA). Having all previously mentioned in mind I would try to use only GL API to achieve similar results, and to avoid stalls imposed by CUDA/GL interoperability.

Before starting banging my head against the wall, I would like to hear your opinions and suggestions.

Thank you in advance!

Projection matrix for non-constant FOV

26 January 2011 - 11:07 AM

Could anyone help me to derive a projection matrix that enables linear change of vertical FOV from left to right?

The problem I'm trying to solve is a projection onto the screen that is not perpendicular to a view direction. Furthermore, there are a lot of such screens that have to be aligned. Thus far I've been using averaged FOV, but the results are not adequate.

Thank you in advance!