Unable to run Makie in VS Code + WSL 2

I could be able to run Makie, say plot a simple line, by executing the Julia code in WSL 2. However, when I tried to run the same code with VS Code REPL, it didn’t work. So, I decided to give Persistent Session a try. I set the shell to my bash shell (which has already defined the $DISPLAY so that it can show GUI through X server). But still not work, below is the error that I got. Note that my OpenGL version in WSL 2 is GL_VERSION = 4.5 (Compatibility Profile) Mesa 21.3.0-devel (git-259e26e 2021-09-16 focal-oibaf-ppa). As I’ve said, I can run using external Julia REPL, but not in VS Code. Any solution for this problem? Thanks.

julia> using GLMakie

julia> lines(x, y)
┌ Warning:     GLFW couldn't create an OpenGL window.
│     This likely means, you don't have an OpenGL capable Graphic Card,
│     or you don't have an OpenGL 3.3 capable video driver installed.
│     Have a look at the troubleshooting section in the GLMakie readme:
│     https://github.com/JuliaPlots/Makie.jl/tree/master/GLMakie#troubleshooting-opengl.
└ @ GLMakie ~/.julia/packages/GLMakie/TViqo/src/screen.jl:336
Display Error: ERROR: GLFWError (NOT_INITIALIZED): The GLFW library is not initialized
Stacktrace:
  [1] _ErrorCallbackWrapper(code::Int32, description::Cstring)
    @ GLFW ~/.julia/packages/GLFW/BWxfF/src/callback.jl:43
  [2] WindowHint
    @ ~/.julia/packages/GLFW/BWxfF/src/glfw3.jl:492 [inlined]
  [3] GLFW.Window(; name::String, resolution::Tuple{Int64, Int64}, debugging::Bool, major::Int64, minor::Int64, windowhints::Vector{Tuple{UInt32, Integer}}, contexthints::Vector{Tuple{UInt32, Integer}}, visible::Bool, focus::Bool, fullscreen::Bool, monitor::Nothing, share::GLFW.Window)
    @ GLFW ~/.julia/packages/GLFW/BWxfF/src/glfw3.jl:316
  [4] GLMakie.Screen(; resolution::Tuple{Int64, Int64}, visible::Bool, title::String, kw_args::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ GLMakie ~/.julia/packages/GLMakie/TViqo/src/screen.jl:328
  [5] Screen
    @ ~/.julia/packages/GLMakie/TViqo/src/screen.jl:301 [inlined]
  [6] global_gl_screen
    @ ~/.julia/packages/GLMakie/TViqo/src/screen.jl:247 [inlined]
  [7] global_gl_screen(resolution::Tuple{Int64, Int64}, visibility::Bool, tries::Int64)
    @ GLMakie ~/.julia/packages/GLMakie/TViqo/src/screen.jl:394
  [8] global_gl_screen
    @ ~/.julia/packages/GLMakie/TViqo/src/screen.jl:393 [inlined]
  [9] scene2image(scene::Scene)
    @ GLMakie ~/.julia/packages/GLMakie/TViqo/src/display.jl:32
 [10] backend_show(#unused#::GLMakie.GLBackend, io::IOContext{Base64.Base64EncodePipe}, m::MIME{Symbol("image/png")}, scene::Scene)
    @ GLMakie ~/.julia/packages/GLMakie/TViqo/src/display.jl:44
 [11] show(io::Base64.Base64EncodePipe, m::MIME{Symbol("image/png")}, scene::Scene; update::Bool)
    @ Makie ~/.julia/packages/Makie/PFSZS/src/display.jl:113
 [12] show
    @ ~/.julia/packages/Makie/PFSZS/src/display.jl:107 [inlined]
 [13] #show#906
    @ ~/.julia/packages/Makie/PFSZS/src/display.jl:104 [inlined]
 [14] show
    @ ~/.julia/packages/Makie/PFSZS/src/display.jl:104 [inlined]
 [15] #show#905
    @ ~/.julia/packages/Makie/PFSZS/src/display.jl:103 [inlined]
 [16] show(io::Base64.Base64EncodePipe, m::MIME{Symbol("image/png")}, fap::Makie.FigureAxisPlot)
    @ Makie ~/.julia/packages/Makie/PFSZS/src/display.jl:103
 [17] base64encode(::Function, ::MIME{Symbol("image/png")}, ::Vararg{Any, N} where N; context::Nothing)
    @ Base64 /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Base64/src/encode.jl:209
 [18] _binstringmime
    @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Base64/src/Base64.jl:46 [inlined]
 [19] stringmime(m::MIME{Symbol("image/png")}, x::Makie.FigureAxisPlot; context::Nothing)
    @ Base64 /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Base64/src/Base64.jl:43
 [20] stringmime
    @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Base64/src/Base64.jl:43 [inlined]
 [21] display(d::VSCodeServer.InlineDisplay, m::MIME{Symbol("image/png")}, x::Makie.FigureAxisPlot)
    @ VSCodeServer ~/.vscode-server/extensions/julialang.language-julia-1.4.0/scripts/packages/VSCodeServer/src/display.jl:53
 [22] display(d::VSCodeServer.InlineDisplay, mime::String, x::Any)
    @ Base.Multimedia ./multimedia.jl:216
 [23] display(d::VSCodeServer.InlineDisplay, x::Makie.FigureAxisPlot)
    @ VSCodeServer ~/.vscode-server/extensions/julialang.language-julia-1.4.0/scripts/packages/VSCodeServer/src/display.jl:152
 [24] #invokelatest#2
    @ ./essentials.jl:708 [inlined]
 [25] invokelatest
    @ ./essentials.jl:706 [inlined]
 [26] (::VSCodeServer.var"#58#62"{Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})()
    @ VSCodeServer ~/.vscode-server/extensions/julialang.language-julia-1.4.0/scripts/packages/VSCodeServer/src/eval.jl:180
 [27] withpath(f::VSCodeServer.var"#58#62"{Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams}, path::String)
    @ VSCodeServer ~/.vscode-server/extensions/julialang.language-julia-1.4.0/scripts/packages/VSCodeServer/src/repl.jl:185
 [28] (::VSCodeServer.var"#57#61"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})()
    @ VSCodeServer ~/.vscode-server/extensions/julialang.language-julia-1.4.0/scripts/packages/VSCodeServer/src/eval.jl:151
 [29] hideprompt(f::VSCodeServer.var"#57#61"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})
    @ VSCodeServer ~/.vscode-server/extensions/julialang.language-julia-1.4.0/scripts/packages/VSCodeServer/src/repl.jl:36
 [30] (::VSCodeServer.var"#56#60"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})()
    @ VSCodeServer ~/.vscode-server/extensions/julialang.language-julia-1.4.0/scripts/packages/VSCodeServer/src/eval.jl:122
 [31] with_logstate(f::Function, logstate::Any)
    @ Base.CoreLogging ./logging.jl:491
 [32] with_logger
    @ ./logging.jl:603 [inlined]
 [33] (::VSCodeServer.var"#55#59"{VSCodeServer.ReplRunCodeRequestParams})()
    @ VSCodeServer ~/.vscode-server/extensions/julialang.language-julia-1.4.0/scripts/packages/VSCodeServer/src/eval.jl:197
 [34] #invokelatest#2
    @ ./essentials.jl:708 [inlined]
 [35] invokelatest(::Any)
    @ Base ./essentials.jl:706
 [36] macro expansion
    @ ~/.vscode-server/extensions/julialang.language-julia-1.4.0/scripts/packages/VSCodeServer/src/eval.jl:34 [inlined]
 [37] (::VSCodeServer.var"#53#54")()
    @ VSCodeServer ./task.jl:411