first little steps
This commit is contained in:
parent
91e33f4b6c
commit
13bd4ac3f1
2 changed files with 28 additions and 22 deletions
|
@ -25,6 +25,7 @@ import Devices
|
||||||
import Types
|
import Types
|
||||||
import Memory
|
import Memory
|
||||||
import Util
|
import Util
|
||||||
|
import Control.Exception (bracket, bracket_)
|
||||||
|
|
||||||
frameOverlap :: Int
|
frameOverlap :: Int
|
||||||
frameOverlap = 2
|
frameOverlap = 2
|
||||||
|
@ -275,30 +276,31 @@ recordCommandBuffer
|
||||||
deviceProps
|
deviceProps
|
||||||
|
|
||||||
|
|
||||||
scenePointer <- VMA.mapMemory allocator (bufferAllocation sceneParameterBuffer)
|
liftIO $ VMA.withMappedMemory allocator (bufferAllocation sceneParameterBuffer) bracket $
|
||||||
|
\scenePointer ->
|
||||||
|
|
||||||
-- dataPointer <- liftIO $ new scenePointer
|
-- dataPointer <- liftIO $ new scenePointer
|
||||||
|
|
||||||
-- paramsPtr <- liftIO (new ambientParams)
|
-- paramsPtr <- liftIO (new ambientParams)
|
||||||
|
|
||||||
-- liftIO $ copyBytes
|
-- liftIO $ copyBytes
|
||||||
-- (scenePointer `plusPtr` (fromIntegral sceneDataOffset * fromIntegral frameIndex))
|
-- (scenePointer `plusPtr` (fromIntegral sceneDataOffset * fromIntegral frameIndex))
|
||||||
-- paramsPtr
|
-- paramsPtr
|
||||||
-- (sizeOf undefinedGPUSceneData)
|
-- (sizeOf undefinedGPUSceneData)
|
||||||
|
|
||||||
liftIO $ poke
|
liftIO $ poke
|
||||||
(castPtr scenePointer `plusPtr` (fromIntegral sceneDataOffset * frameIndex))
|
(castPtr scenePointer `plusPtr` (fromIntegral sceneDataOffset * frameIndex))
|
||||||
-- (castPtr scenePointer `plusPtr`
|
-- (castPtr scenePointer `plusPtr`
|
||||||
-- (fromIntegral $
|
-- (fromIntegral $
|
||||||
-- padUniformBufferSize (fromIntegral $ sizeOf (undefinedGPUSceneData)) deviceProps))-- *
|
-- padUniformBufferSize (fromIntegral $ sizeOf (undefinedGPUSceneData)) deviceProps))-- *
|
||||||
-- -- fromIntegral frameIndex))
|
-- -- fromIntegral frameIndex))
|
||||||
ambientParams
|
ambientParams
|
||||||
|
|
||||||
-- liftIO $ do
|
-- liftIO $ do
|
||||||
-- test <- peek (castPtr scenePointer :: Ptr GPUSceneData)
|
-- test <- peek (castPtr scenePointer :: Ptr GPUSceneData)
|
||||||
-- print test
|
-- print test
|
||||||
|
|
||||||
VMA.unmapMemory allocator (bufferAllocation sceneParameterBuffer)
|
-- VMA.unmapMemory allocator (bufferAllocation sceneParameterBuffer)
|
||||||
|
|
||||||
renderObjects <- (liftIO . STM.atomically . STM.readTMVar) =<< asks renderables
|
renderObjects <- (liftIO . STM.atomically . STM.readTMVar) =<< asks renderables
|
||||||
meshMap <- (liftIO . STM.atomically . STM.readTMVar) =<< asks meshLibrary
|
meshMap <- (liftIO . STM.atomically . STM.readTMVar) =<< asks meshLibrary
|
||||||
|
@ -330,11 +332,15 @@ recordCommandBuffer
|
||||||
mesh = meshMap M.! meshID
|
mesh = meshMap M.! meshID
|
||||||
material = materialMap M.! materialID
|
material = materialMap M.! materialID
|
||||||
|
|
||||||
memoryPointer <- VMA.mapMemory allocator (bufferAllocation $ frameCameraBuffer frame)
|
liftIO $ VMA.withMappedMemory
|
||||||
|
allocator
|
||||||
|
(bufferAllocation $ frameCameraBuffer frame)
|
||||||
|
bracket
|
||||||
|
$ \memoryPointer ->
|
||||||
|
|
||||||
liftIO $ poke (castPtr memoryPointer) cameraData
|
liftIO $ poke (castPtr memoryPointer) cameraData
|
||||||
|
|
||||||
VMA.unmapMemory allocator (bufferAllocation $ frameCameraBuffer frame)
|
-- VMA.unmapMemory allocator (bufferAllocation $ frameCameraBuffer frame)
|
||||||
|
|
||||||
Vk.cmdBindPipeline commandBuffer Vk.PIPELINE_BIND_POINT_GRAPHICS (materialPipeline material)
|
Vk.cmdBindPipeline commandBuffer Vk.PIPELINE_BIND_POINT_GRAPHICS (materialPipeline material)
|
||||||
|
|
||||||
|
|
|
@ -203,7 +203,7 @@ initDescriptors device = do
|
||||||
0
|
0
|
||||||
sceneBind = descriptorsetLayoutBinding
|
sceneBind = descriptorsetLayoutBinding
|
||||||
Vk.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
|
Vk.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
|
||||||
(Vk.SHADER_STAGE_VERTEX_BIT .|. Vk.SHADER_STAGE_FRAGMENT_BIT)
|
Vk.SHADER_STAGE_FRAGMENT_BIT
|
||||||
1
|
1
|
||||||
objectBind = descriptorsetLayoutBinding
|
objectBind = descriptorsetLayoutBinding
|
||||||
Vk.DESCRIPTOR_TYPE_STORAGE_BUFFER
|
Vk.DESCRIPTOR_TYPE_STORAGE_BUFFER
|
||||||
|
|
Loading…
Reference in a new issue