yoelshoshan

Members
  • Content count

    46
  • Joined

  • Last visited

Community Reputation

235 Neutral

About yoelshoshan

  • Rank
    Member
  1. Thanks for the quick answer!   And how does that work API wise? Can the gpu/driver deduce which drawcalls are not dependant on previous, or is there some API that let's the developer take care of that?
  2. Reading here: http://wccftech.com/xbox-one-directx-12-asynchronous-compute-hardware-specifications-ps4-comparison/4/   I was wondering, what is the point of having two graphical queues? Is it to allow actual parallelism of different contexes? Does it mean that command list can be parallelized not only on the CPU but also on the GPU ?   I will greatly appreciate any explanation on the motivation and the dev API usage possibilities of this "two graphical queues" hw design.   Thanks :)
  3. Hi!   Is there any method to specifically define a custom sampling pattern when using MSAA ? Are there any plans to add such functionality to future API ?   Note: I'm aware of the two "standard" and "center" well defined patterns ("quality"), and that the rest are vendor specific.   Note2: I'm aware of modern alternative post-processing methods for AA   Thanks!
  4. Commands Recording

    Thanks! D3DPRESENTFLAG_LOCKABLE_BACKBUFFER is not used at the device creation.
  5. Commands Recording

    Sorry, I forgot to mention, the ret value is S_OK.   When I switch to Directx debug runtime, it doesn't happen anymore, which leaves me even more puzzled.   When I use the DirectX release RT, the call stack is:   Recorder.dll!IDirect3DSurface9_Recorder::LockRect(_D3DLOCKED_RECT * pLockedRect, const tagRECT * pRect, unsigned long Flags) Line 495 C++ D3DX9_43.dll!D3DXTex::CLockSurface::Lock(struct D3DX_BLT *,struct IDirect3DSurface9 *,struct tagPALETTEENTRY const *,struct tagRECT const *,unsigned long,unsigned long) Unknown D3DX9_43.dll!_D3DXLoadSurfaceFromMemory@40() Unknown D3DX9_43.dll!_D3DXLoadVolumeFromResourceW@36() Unknown D3DX9_43.dll!_D3DXCreateTextureFromFileInMemoryEx@60() Unknown ...
  6. Commands Recording

    Hi all, I need to serialize DX9 commands to file.   It generally works quite well, but I encountered a case which I don't really understand, and would really appreciate your help.   In a certain game (not mine, a commercial game), there is a LockRect() called on a surface. The surface details are: Format D3DFMT_A8R8G8B8 (21) _D3DFORMAT Type D3DRTYPE_SURFACE (1) _D3DRESOURCETYPE Usage 1 unsigned long Pool D3DPOOL_DEFAULT (0) _D3DPOOL MultiSampleType D3DMULTISAMPLE_NONE (0) _D3DMULTISAMPLE_TYPE MultiSampleQuality 0 unsigned long Width 1280 unsigned int Height 720 unsigned int However, when the LockRect() function returns, the returned pitch is 1024. This kinda destroys all I understood about pitch :/ I thought that the pitch should be at least width * pixel_size, which in this case is (1280 * 4) = .5120, which is much higher than 1024 ... Note: 1. As you can see, this is not a compressed format. 2. The lock flag contain only D3DLOCK_NOSYSLOCK. Which AFAIK, apart from describing not doing a sys-lock, also means it's both read+write, since there's no other flag. 3. The "RECT* pRect" argument in LockRect() is NULL. Can you help me understand what is going on? Thanks, Yoel.
  7. Measuring Latency [Solved]

    If anyone is interested, i solved the problem of measuring latency. I had to move outside of the scope of user-mode DirectX.   The solution was injecting "D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2":after presents. http://msdn.microsoft.com/en-us/library/windows/hardware/ff548357%28v=vs.85%29.aspx   It sounds off topic for this forum so i won't go deep into the description.
  8. Measuring Latency [Solved]

    Thanks for your replies =)   Hodgman, as you said - it changes performance and behavior drastically, so it's not acceptable. The point is to measure current latency, and by doing what you suggest, not only performance is altered, latency itself is altered drastically since i no longer allow queuing of frames.   Sharing the options i can think of:   1. Using GPU time_stamp queries and somehow learning how to match between cpu time_stamp and gpu time_stamp (tricky...) 2. Polling event queries on a dedicated thread in around 1000 getdata queries per minute. I must check how much it eats from the core it runs on... hopefully not too much since it's not a full busy polling. 3. Probably the best method remains waiting on low level events, the same way as GPUView does.   BTW - this code will not run on my own application, it is injected to other applications. But any solution that works on my own application, without altering the original latency/performance is acceptable as well :)
  9. Measuring Latency [Solved]

    Thank you MJP! I need to do it programatically, it's not some "post-mortem" analysis of an application.   But i can take the following from your idea: 1. What i want to do is obviously possible - If GPUView can do it, so should I =) 2. Maybe i can reverse GPUView a bit, but my guess is that they use kernel code which I don't want to do until I make sure it's not solvable in user code.   Any more ideas?
  10. Hi all,   I'm writing a tool to measure latency in 3d applications (mostly games). My definition of the latency is time between: 1. First D3D command of frame N (dx is 9,10,11) 2. Actual presentation time on the GPU (imagine fullscreen, time of the actual flip)   I prefer not diving into kernel, and using only user code.   Using queries i can get: a. CPU time of the first d3d command b. GPU time of the present event   My question is, how to calculate a delta between those? They are obviously two different processors.   Note: assume that frequency didn't change in the middle of the test. All i can think of is some initial synchronization phase, but it sounds a bit messy.   Any ideas will be highly appreciated =)
  11. Downloadble demo (didn't try it yet) rigidgems.sakura.ne.jp/index.html He does use the term hybrid...
  12. DX11 Fractional Viewports

    Hi Nik02, Do you have an example of potential usage in it? (A specific example)
  13. I've seen that in DX11 it's allowed to provide "Fractional Viewports" : "Direct3D 11 supports fractional viewports; the parameter types are floating-point numbers." From the docs: http://msdn.microsoft.com/en-us/library/windows/desktop/ff476260%28v=vs.85%29.aspx Does someone here know what is the meaning of it? and what potential usage it has?
  14. question about a special effect

    Some screenshots would probably make more people understand what you are talking about
  15. DX11 D3DXAssembleShader for D3D11 ?

    Nik02: I only need to change Pixel shaders, so, while still remaining a challenge, it becomes a more feasible one imho. It's very easy to say that something is impossible, i doubt that this is impossible, i've seen more complicated challenges completed and shipped. I estimate that as challenging as it is, a single person well skilled in reversing and familiar with 3d APIs concepts can finish it in around 6 months of fully dedicated work ;)