Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mapping the buffer twice Exception on GL3+ & Vulkan Render Systems #59

Open
P-S-Y-S-U opened this issue Nov 19, 2023 · 5 comments
Open
Assignees
Labels
bug Something isn't working

Comments

@P-S-Y-S-U
Copy link

Hi, if I use "COLIBRI_MULTIPASS_SUPPORT" I get ""Mapping the buffer twice within the same frame detected! This is not allowed." exception on Vulkan and OpenGL3+ rendering systems.

Here's how i setup my compositor node ( check out the note on this ):

target rt_renderwindow
{
    pass render_scene
    {
        load
        {
            all clear
            clear_colour 1.0 1.0 1.0 1.0
        }
        store
        {
            all store_or_resolve
        }
        rq_first 6
        rq_last 7

        profiling_id "Bg Pass"
    }

    pass custom colibri_gui // Note: if i didn't define this custom pass i don't get any exception
    {
        skip_load_store_semantics false
        identifier 123
        profiling_id "Back Colibri GUI"
        aspect_ratio_mode keep_width
    }

    pass render_scene
    {
        skip_load_store_semantics true

        rq_first 7
        rq_last 200
        
        profiling_id "Main Objects Pass"
    }

    pass custom colibri_gui
    {
        skip_load_store_semantics false
        identifier 456
        profiling_id "Front Colibri GUI"
        aspect_ratio_mode keep_width
    }
}
@darksylinc
Copy link
Owner

Hi!

Could you post the callstack of the exception? Thanks

@darksylinc darksylinc self-assigned this Nov 19, 2023
@darksylinc darksylinc added the bug Something isn't working label Nov 19, 2023
@P-S-Y-S-U
Copy link
Author

OpenGL3+:

OgreColibriMultiPass_Opengl3+

Vulkan:

OgreColibriMultiPass_Vulkan

is this enough?

@darksylinc
Copy link
Owner

Hi!

Are you by chance calling ColibriManager::update in a listener between the first and second Colibri pass?
I'm thinking that's the only reasonable explanation to trigger the exception.

@P-S-Y-S-U
Copy link
Author

Yes. i was calling ColibriManager::update on each custom colibrigui pass.
i tried calling only one ColibriManager::update before Ogre::Root::renderOneFrame now it works.

Thanks

@P-S-Y-S-U
Copy link
Author

I still don't understand how DirectX11 managed to overcome this though :P

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants