Always swapping the graphics system so that we see the profiler update.
This commit is contained in:
parent
0c55309826
commit
0267efa5cc
|
@ -170,6 +170,11 @@ void D3D11GraphicsSystem::Pump() {
|
||||||
if (xe_pal_now() - last_interrupt_time_ > 500 / 1000.0) {
|
if (xe_pal_now() - last_interrupt_time_ > 500 / 1000.0) {
|
||||||
DispatchInterruptCallback(0);
|
DispatchInterruptCallback(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Force a swap when profiling.
|
||||||
|
if (Profiler::is_enabled()) {
|
||||||
|
window_->Swap();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -423,13 +423,22 @@ uint32_t D3D11ProfilerDisplay::height() const {
|
||||||
void D3D11ProfilerDisplay::Begin() {
|
void D3D11ProfilerDisplay::Begin() {
|
||||||
auto context = window_->context();
|
auto context = window_->context();
|
||||||
|
|
||||||
|
D3D11_VIEWPORT viewport;
|
||||||
|
viewport.TopLeftX = 0.0f;
|
||||||
|
viewport.TopLeftY = 0.0f;
|
||||||
|
viewport.Width = static_cast<float>(width());
|
||||||
|
viewport.Height = static_cast<float>(height());
|
||||||
|
viewport.MinDepth = 0.0f;
|
||||||
|
viewport.MaxDepth = 1.0f;
|
||||||
|
context->RSSetViewports(1, &viewport);
|
||||||
|
|
||||||
// Setup projection matrix.
|
// Setup projection matrix.
|
||||||
float left = 0.0f;
|
float left = viewport.TopLeftX;
|
||||||
float right = (float)width();
|
float right = viewport.TopLeftX + viewport.Width;
|
||||||
float bottom = (float)height();
|
float bottom = viewport.TopLeftY + viewport.Height;
|
||||||
float top = 0.0f;
|
float top = viewport.TopLeftY;
|
||||||
float z_near = -1.0f;
|
float z_near = viewport.MinDepth;
|
||||||
float z_far = 1.0f;
|
float z_far = viewport.MaxDepth;
|
||||||
float projection[16] = { 0 };
|
float projection[16] = { 0 };
|
||||||
projection[0] = 2.0f / (right - left);
|
projection[0] = 2.0f / (right - left);
|
||||||
projection[5] = 2.0f / (top - bottom);
|
projection[5] = 2.0f / (top - bottom);
|
||||||
|
@ -452,9 +461,17 @@ void D3D11ProfilerDisplay::Begin() {
|
||||||
context->VSSetShader(vertex_shader_, nullptr, 0);
|
context->VSSetShader(vertex_shader_, nullptr, 0);
|
||||||
context->VSSetConstantBuffers(0, 1, &shader_constants_);
|
context->VSSetConstantBuffers(0, 1, &shader_constants_);
|
||||||
context->PSSetShader(pixel_shader_, nullptr, 0);
|
context->PSSetShader(pixel_shader_, nullptr, 0);
|
||||||
context->PSSetSamplers(0, 1, &font_sampler_state_);
|
|
||||||
context->PSSetConstantBuffers(0, 1, &shader_constants_);
|
context->PSSetConstantBuffers(0, 1, &shader_constants_);
|
||||||
context->PSSetShaderResources(0, 1, &font_texture_view_);
|
ID3D11SamplerState* ps_samplers[D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT] = {
|
||||||
|
font_sampler_state_,
|
||||||
|
nullptr,
|
||||||
|
};
|
||||||
|
context->PSSetSamplers(0, XECOUNT(ps_samplers), ps_samplers);
|
||||||
|
ID3D11ShaderResourceView* ps_resources[D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT] = {
|
||||||
|
font_texture_view_,
|
||||||
|
nullptr,
|
||||||
|
};
|
||||||
|
context->PSSetShaderResources(0, XECOUNT(ps_resources), ps_resources);
|
||||||
context->IASetInputLayout(shader_layout_);
|
context->IASetInputLayout(shader_layout_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue