Jump to content
  • Advertisement


  • Content count

  • Joined

  • Last visited

Community Reputation

171 Neutral

About Shigeo.K

  • Rank

Personal Information


  • Twitter
  • Steam

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. http://store.steampowered.com/app/418050/?snr=1_7_7_151_150_1 I don't come here to advertise my game. So do not buy  from the above link :P   Of course they are. Needless to say, we need  transitions. But I don't need  barriers (on my hardware, for now, on my simple examinations). I just want to make it clear that I do not say I do not need a transition itself. On my PC, program works fine without barriers, but I know I need barriers for many reasons.
  2. I am using a very common hardware, GeForce GTX 1070(driver version 2016.12.29) and Core i7 6700K. I have examined texture transition without putting barriers. Still D3D12 works fine. Maybe we will need barriers in the near future. Not now. Of course, we can't disrespect for the barrier. Barrier is exist because D3D12 want us to use it, obviously. I just a little surprised that I can do almost everything WITHOUT barriers for now(on my hardware). Sorry I can't understand what this means. I think I am some kind of peculiar developer. I am 1 man developer, and I have passed steam greenlight, my game is in the steam store. My game is the game which has a crazy load on the cpu and the gpu.   Yes, it seems so. That what I was thinking. Anyway, thanks to you guys, I could get a great confidence. Thank you.
  3. I did not mean I do not want to deal with barriers. Actually, opposite(That's why I post this thread). Yes this is what I thought. Following your advice, I will test some texture transition, and see what happen if I don't put barrier commands. Thanks. AAA games, I agree in some ways. But there is a developer like me who want to get maximum performance for his game. not only enormous budget games. You might need to know that.
  4. Hi. I am learning the barrier stuff now. I got a simple question. I understood the  theory of the barrier. But my D3D12 program(and MS sample program too) run fine WITHOUT barrier commands. It seems like D3D12 driver doesn't care about barriers. why D3D12 works fine without barriers? Following code ,of course, works fine. g_pCommandList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(g_pRenderTargets[g_FrameIndex], D3D12_RESOURCE_STATE_PRESENT, D3D12_RESOURCE_STATE_RENDER_TARGET)); (Draw operations) g_pCommandList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(g_pRenderTargets[g_FrameIndex], D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATE_PRESENT)); And bellow works fine TOO (barrier commands are commented out). //g_pCommandList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(g_pRenderTargets[g_FrameIndex], D3D12_RESOURCE_STATE_PRESENT, D3D12_RESOURCE_STATE_RENDER_TARGET)); (Draw operations) //g_pCommandList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(g_pRenderTargets[g_FrameIndex], D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATE_PRESENT)); why?
  5. That clears up everything. Thanks!   And thank you for the confirmation. I was confident that my procedure was one of several correct approaches. I also realized that there are several other approaches to achieve the same result. By increasing the degree of freedom of the API, we increased our responsibility, but there are more options for programmers than with Dx11.As a API user, I think that this is a good trend. I don’t entirely understand the “temporary buffer” you mentioned, but I will do my best to figure it out. I’m sure it is a useful technique. Thank you for showing me the snippet of the source code. I will do my best to understand it. It also seems that I misunderstood the notion.And also the thread title. In actuality, I prepare multiple CB memory blocks, not multiple CBVs.
  6. Hi everyone, The sample of the SDK renders a single triangle per frame. I want to render multiple objects per frame (of course, it is fine if there is only one vertex buffer). Before Dx11, it was possible to implement the rendering of a single object or of multiple objects by simply increasing the loop counter. In Dx12, however, it seems that this is no longer the case. Through trial and error, I was finally able to figure out how to do it!   However, I have concerns about whether it is a suitable solution. For now, I am implementing multiple renderings by creating multiple CBVs. For example, if I want to render 5 objects, I create 5 CBVs, one for each. ****Initializing Phase**** for (int i = 0; i < 5; i++) { cbvDesc.BufferLocation = g_constantBuffer->GetGPUVirtualAddress()+i*CBSize; D3D12_CPU_DESCRIPTOR_HANDLE cHandle = g_pCbvHeap->GetCPUDescriptorHandleForHeapStart(); cHandle.ptr += i*Stride; g_pDevice->CreateConstantBufferView(&cbvDesc, cHandle); } ****Draw Phase**** //Update constant buffer for (int i = 0; i<5; i++) { char* ptr = reinterpret_cast<char*>(g_pCbvDataBegin)+256*i; (some matrix oparation...) g_constantBufferData.mWVP = mWVP; memcpy(ptr, &g_constantBufferData, sizeof(g_constantBufferData)); } //Draw for(int i=0;i<5;i++) { cbvSrvUavDescHeap.ptr += i * size; g_pCommandList->SetGraphicsRootDescriptorTable(0, cbvSrvUavDescHeap); g_pCommandList->DrawInstanced(3, 1, 0, 0); } . Something about this solution feels ‘off’, so I wanted to see what you all think. Is this the right way to handle this problem? Thanks! Best regards,
  7. Shigeo.K

    D3d12 fence value

    All is clear now. As you guys say, where the value lies does not matter. However, It's better to know than not to know. In fact it indeed helped me understand.   Thank you Jesse and Infinisearch.
  8. Shigeo.K

    D3d12 fence value

    OK, thanks. But from where did you find the information? I think there is no clear information about this in the document.
  9. I have a question. As for Direcdt3d12, 1.  do CPU and GPU have their own Fence value respectively? 2.  Or, only one fence value is exists in the system, CPU and GPU share that same value? 3.  Or, does only GPU have the Fence value? Which one is correct? (or none of them are correct?)   1      CPU                                           GPU           |                                                  |  cpu fence value                       gpu fence value        can be different.   ID3D12Fence::Signal() changes 'cpu fence value' while  ID3D12CommandQueue::Signal() changes 'qpu fence value'?   2      CPU                                                     GPU             \---------->  fence value  <---------------/           can't be different. This doesn't make sense..I realize while writing this...     3      CPU                                   GPU             \------------------>      gpu fence vaue            can't be different.   This doesn't make sense..I realize while writing this...   application can copy and hold the fence value in the own memory,I don't mean those copy. I mean the fence values in the Inside of D3d12 system is only 1?  Or there are 2 fence value for CPU and GPU?
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!