sokol gfx bug fixing for the pass/pipeline log errors (still black screen)
This commit is contained in:
parent
5bd6519b6a
commit
692ca3a577
@ -145,7 +145,7 @@ render :: proc()
|
||||
width := u32(app_window.extent.x * 2)
|
||||
height := u32(app_window.extent.y * 2)
|
||||
|
||||
pass := atlas_pass
|
||||
pass := screen_pass
|
||||
if ! draw_call.clear_before_draw {
|
||||
pass.action.colors[0].load_action = .LOAD
|
||||
// pass.action.colors[0].clear_value.a = 0.0
|
||||
|
@ -42,13 +42,13 @@ FontProviderData :: struct
|
||||
|
||||
// 2k x 512, R8
|
||||
glyph_rt_color : sokol_gfx.Image,
|
||||
glyph_rt_depth : sokol_gfx.Image,
|
||||
// glyph_rt_resolve : sokol_gfx.Image,
|
||||
// glyph_rt_depth : sokol_gfx.Image,
|
||||
|
||||
// 4k x 2k, R8
|
||||
atlas_rt_color : sokol_gfx.Image,
|
||||
atlas_rt_depth : sokol_gfx.Image,
|
||||
// atlas_rt_resolve : sokol_gfx.Image,
|
||||
// atlas_rt_depth : sokol_gfx.Image,
|
||||
|
||||
glyph_pipeline : sokol_gfx.Pipeline,
|
||||
atlas_pipeline : sokol_gfx.Pipeline,
|
||||
@ -90,6 +90,7 @@ font_provider_startup :: proc()
|
||||
ImageDesc :: sokol_gfx.Image_Desc
|
||||
PassAction :: sokol_gfx.Pass_Action
|
||||
Range :: sokol_gfx.Range
|
||||
ResourceState :: sokol_gfx.Resource_State
|
||||
SamplerDescription :: sokol_gfx.Sampler_Desc
|
||||
Wrap :: sokol_gfx.Wrap
|
||||
VertexAttributeState :: sokol_gfx.Vertex_Attr_State
|
||||
@ -112,12 +113,14 @@ font_provider_startup :: proc()
|
||||
usage = BufferUsage.STREAM,
|
||||
type = BufferType.VERTEXBUFFER,
|
||||
})
|
||||
verify( sokol_gfx.query_buffer_state( draw_list_vbuf) < ResourceState.FAILED, "Failed to make draw_list_vbuf" )
|
||||
|
||||
draw_list_ibuf = sokol_gfx.make_buffer( BufferDesciption {
|
||||
size = size_of(u32) * Kilo * 32,
|
||||
usage = BufferUsage.STREAM,
|
||||
type = BufferType.INDEXBUFFER,
|
||||
})
|
||||
verify( sokol_gfx.query_buffer_state( draw_list_ibuf) < ResourceState.FAILED, "Failed to make draw_list_iubuf" )
|
||||
|
||||
gfx_sampler = sokol_gfx.make_sampler( SamplerDescription {
|
||||
min_filter = Filter.NEAREST,
|
||||
@ -127,6 +130,7 @@ font_provider_startup :: proc()
|
||||
wrap_v = Wrap.CLAMP_TO_EDGE,
|
||||
border_color = BorderColor.OPAQUE_BLACK,
|
||||
})
|
||||
verify( sokol_gfx.query_sampler_state( gfx_sampler) < ResourceState.FAILED, "Failed to make gfx_sampler" )
|
||||
|
||||
// glyph_pipeline
|
||||
{
|
||||
@ -171,9 +175,13 @@ font_provider_startup :: proc()
|
||||
0 = color_target,
|
||||
},
|
||||
color_count = 1,
|
||||
depth = {
|
||||
pixel_format = .DEPTH,
|
||||
},
|
||||
// sample_count = 1,
|
||||
// label =
|
||||
})
|
||||
verify( sokol_gfx.query_pipeline_state(glyph_pipeline) < ResourceState.FAILED, "Failed to make glyph_pipeline" )
|
||||
}
|
||||
|
||||
// glyph_pass
|
||||
@ -185,12 +193,25 @@ font_provider_startup :: proc()
|
||||
height = i32(ve_font_cache.atlas.buffer_height),
|
||||
num_slices = 1,
|
||||
num_mipmaps = 1,
|
||||
usage = .STREAM,
|
||||
usage = .IMMUTABLE,
|
||||
pixel_format = .R8,
|
||||
sample_count = app_env.defaults.sample_count,
|
||||
// TODO(Ed): Setup labels for debug tracing/logging
|
||||
// label =
|
||||
})
|
||||
verify( sokol_gfx.query_image_state(glyph_rt_color) < ResourceState.FAILED, "Failed to make glyph_pipeline" )
|
||||
|
||||
glyph_rt_depth = sokol_gfx.make_image( ImageDesc {
|
||||
type = ._2D,
|
||||
render_target = true,
|
||||
width = i32(ve_font_cache.atlas.buffer_width),
|
||||
height = i32(ve_font_cache.atlas.buffer_height),
|
||||
num_slices = 1,
|
||||
num_mipmaps = 1,
|
||||
usage = .IMMUTABLE,
|
||||
pixel_format = .DEPTH,
|
||||
sample_count = app_env.defaults.sample_count,
|
||||
})
|
||||
|
||||
color_attach := AttachmentDesc {
|
||||
image = glyph_rt_color,
|
||||
@ -201,7 +222,11 @@ font_provider_startup :: proc()
|
||||
colors = {
|
||||
0 = color_attach,
|
||||
},
|
||||
depth_stencil = {
|
||||
image = glyph_rt_depth,
|
||||
},
|
||||
})
|
||||
verify( sokol_gfx.query_attachments_state(glyph_attachments) < ResourceState.FAILED, "Failed to make glyph_attachments" )
|
||||
|
||||
glyph_action := PassAction {
|
||||
colors = {
|
||||
@ -263,7 +288,10 @@ font_provider_startup :: proc()
|
||||
0 = color_target,
|
||||
},
|
||||
color_count = 1,
|
||||
sample_count = 1,
|
||||
depth = {
|
||||
pixel_format = .DEPTH,
|
||||
},
|
||||
// sample_count = 1,
|
||||
})
|
||||
}
|
||||
|
||||
@ -276,12 +304,26 @@ font_provider_startup :: proc()
|
||||
height = i32(ve_font_cache.atlas.buffer_height),
|
||||
num_slices = 1,
|
||||
num_mipmaps = 1,
|
||||
usage = .STREAM,
|
||||
usage = .IMMUTABLE,
|
||||
pixel_format = .R8,
|
||||
sample_count = app_env.defaults.sample_count,
|
||||
// TODO(Ed): Setup labels for debug tracing/logging
|
||||
// label =
|
||||
})
|
||||
verify( sokol_gfx.query_image_state(atlas_rt_color) < ResourceState.FAILED, "Failed to make atlas_rt_color")
|
||||
|
||||
atlas_rt_depth = sokol_gfx.make_image( ImageDesc {
|
||||
type = ._2D,
|
||||
render_target = true,
|
||||
width = i32(ve_font_cache.atlas.buffer_width),
|
||||
height = i32(ve_font_cache.atlas.buffer_height),
|
||||
num_slices = 1,
|
||||
num_mipmaps = 1,
|
||||
usage = .IMMUTABLE,
|
||||
pixel_format = .DEPTH,
|
||||
sample_count = app_env.defaults.sample_count,
|
||||
})
|
||||
verify( sokol_gfx.query_image_state(atlas_rt_depth) < ResourceState.FAILED, "Failed to make atlas_rt_depth")
|
||||
|
||||
color_attach := AttachmentDesc {
|
||||
image = atlas_rt_color,
|
||||
@ -292,7 +334,11 @@ font_provider_startup :: proc()
|
||||
colors = {
|
||||
0 = color_attach,
|
||||
},
|
||||
depth_stencil = {
|
||||
image = atlas_rt_depth,
|
||||
},
|
||||
})
|
||||
verify( sokol_gfx.query_attachments_state(atlas_attachments) < ResourceState.FAILED, "Failed to make atlas_attachments")
|
||||
|
||||
atlas_action := PassAction {
|
||||
colors = {
|
||||
@ -356,6 +402,7 @@ font_provider_startup :: proc()
|
||||
color_count = 1,
|
||||
sample_count = 1,
|
||||
})
|
||||
verify( sokol_gfx.query_pipeline_state(screen_pipeline) < ResourceState.FAILED, "Failed to make screen_pipeline" )
|
||||
}
|
||||
|
||||
// screen_pass
|
||||
|
Loading…
Reference in New Issue
Block a user