st/nine: Fix a crash if the state is not initialized
I don't remember exactly the conditions of the crash, but I had a trace which was crashing in the gallium driver before doing any rendering (something about viewports being not initialized). It's not the first time we hit such a problem, so rather than investigating that crash, I chose to just initialize every states at device creation. Signed-off-by: Axel Davy <davyaxel0@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5015>
This commit is contained in:
parent
0222c550c7
commit
725ebc4657
|
@ -517,6 +517,7 @@ NineDevice9_ctor( struct NineDevice9 *This,
|
|||
nine_state_init_sw(This);
|
||||
|
||||
ID3DPresentGroup_Release(This->present);
|
||||
nine_context_update_state(This); /* Some drivers needs states to be initialized */
|
||||
nine_csmt_process(This);
|
||||
|
||||
return D3D_OK;
|
||||
|
|
|
@ -2935,6 +2935,12 @@ nine_context_clear(struct NineDevice9 *device)
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
nine_context_update_state(struct NineDevice9 *device)
|
||||
{
|
||||
nine_update_state(device);
|
||||
}
|
||||
|
||||
void
|
||||
nine_state_init_sw(struct NineDevice9 *device)
|
||||
{
|
||||
|
|
|
@ -606,6 +606,7 @@ void nine_state_set_defaults(struct NineDevice9 *, const D3DCAPS9 *,
|
|||
boolean is_reset);
|
||||
void nine_device_state_clear(struct NineDevice9 *);
|
||||
void nine_context_clear(struct NineDevice9 *);
|
||||
void nine_context_update_state(struct NineDevice9 *);
|
||||
|
||||
void nine_state_init_sw(struct NineDevice9 *device);
|
||||
void nine_state_prepare_draw_sw(struct NineDevice9 *device,
|
||||
|
|
Loading…
Reference in New Issue