void UpdatePix2Pix() { if (_itr == null) { Image.ConvertToTensor(_sourceTexture, _sourceTensor); _itr = Generator.Start(_sourceTensor, _weightTable, _resultTensor); } while (_spent < _budget) { if (!_itr.MoveNext()) { Image.ConvertFromTensor(_resultTensor, _resultTexture); _spent += _itr.Current; Image.ConvertToTensor(_sourceTexture, _sourceTensor); _itr = Generator.Start(_sourceTensor, _weightTable, _resultTensor); } else { _spent += _itr.Current; } } _spent -= _budget; _budget -= Mathf.Max(Time.deltaTime * 60 - 1.2f, 0) * 5; _budget = Mathf.Max(150, _budget); _textDisplay.text = "Refresh rate: " + (60 * Mathf.Min(1.0f, _budget / 1000)).ToString("0.0") + " Hz (" + _levels[(int)Mathf.Min(5, _budget / 100)] + ")"; }
void UpdatePix2Pix() { // Advance the Pix2Pix inference until the current budget runs out. for (var cost = 0.0f; cost < _budget;) { if (!_generator.Running) { _generator.Start(_sourceTexture); } cost += _generator.Step(); if (!_generator.Running) { _generator.GetResult(_resultTexture); } } // Review the budget depending on the current frame time. _budget -= (Time.deltaTime * 60 - 1.25f) * _budgetAdjust; _budget = Mathf.Clamp(_budget, 150, 1200); _budgetAdjust = Mathf.Max(_budgetAdjust - 0.05f, 0.5f); // Update the text display. var rate = 60 * _budget / 1000; var perf = (_budgetAdjust < 1) ? _performanceLabels[(int)Mathf.Min(5, _budget / 100)] : "Measuring GPU performance..."; _textUI.text = string.Format("Pix2Pix refresh rate: {0:F1} Hz ({1})", rate, perf); }
public bool UpdatePix2Pix() { bool done = false; // Advance the Pix2Pix inference until the current budget runs out. for (var cost = 0.0f; cost < _budget;) { if (!_generator.Running) { _generator.Start(_sourceTexture); } cost += _generator.Step(); if (!_generator.Running) { _generator.GetResult(_resultTexture); done = true; } } Pix2Pix.GpuBackend.ExecuteAndClearCommandBuffer(); // Review the budget depending on the current frame time. _budget -= (Time.deltaTime * 60 - 1.25f) * _budgetAdjust; _budget = Mathf.Clamp(_budget, 150, 1200); _budgetAdjust = Mathf.Max(_budgetAdjust - 0.05f, 0.5f); // Update the text display. var rate = 60 * _budget / 1000; var perf = (_budgetAdjust < 1) ? _performanceLabels[(int)Mathf.Min(5, _budget / 100)] : "Measuring GPU performance..."; // _textUI.text = // string.Format("pix2Pix refresh rate: {0:F1} Hz", rate); return(done); }
/*public bool UpdatePix2Pix() { * bool done = false; * // Advance the Pix2Pix inference until the current budget runs out. * for (var cost = 0.0f; cost < _budget;) { * if (!_generator.Running) _generator.Start(_sourceTexture); * * cost += _generator.Step(); * * if (!_generator.Running) { * _generator.GetResult(_resultTexture); * done = true; * } * } * * Pix2Pix.GpuBackend.ExecuteAndClearCommandBuffer(); * * // Review the budget depending on the current frame time. * _budget -= (Time.deltaTime * 60 - 1.25f) * _budgetAdjust; * _budget = Mathf.Clamp(_budget, 150, 1200); * * _budgetAdjust = Mathf.Max(_budgetAdjust - 0.05f, 0.5f); * * // Update the text display. * var rate = 60 * _budget / 1000; * * var perf = (_budgetAdjust < 1) ? * _performanceLabels[(int)Mathf.Min(5, _budget / 100)] : * "Measuring GPU performance..."; * * // _textUI.text = * // string.Format("pix2Pix refresh rate: {0:F1} Hz", rate); * return done; * }*/ #endregion public void Render(RenderTexture source, RenderTexture output) { // if (_generator == null || !isInitialized) InitializePix2Pix(); // Debug.Log(string.Format("{0}, {1}", source == null, _generator == null)); _generator.Start(source); _generator.Step(); while (_generator.Running) { _generator.Step(); } _generator.GetResult(output); Pix2Pix.GpuBackend.ExecuteAndClearCommandBuffer(); }
void UpdatePix2Pix() { // Advance the Pix2Pix inference until the current budget runs out. for (var cost = 0.0f; cost < _budget;) { if (_progress == null) { Pix2Pix.Image.ConvertToTensor(_sourceTexture, _sourceTensor); _progress = _generator.Start(_sourceTensor, _resultTensor); } if (_progress.MoveNext()) { cost += _progress.Current; } else { Pix2Pix.Image.ConvertFromTensor(_resultTensor, _resultTexture); _progress = null; } } // Review the budget depending on the current frame time. _budget -= (Time.deltaTime * 60 - 1.25f) * _budgetAdjust; _budget = Mathf.Clamp(_budget, 150, 1200); _budgetAdjust = Mathf.Max(_budgetAdjust - 0.05f, 0.5f); // Update the text display. var perf = (_budgetAdjust < 1) ? _performanceLabels[(int)Mathf.Min(5, _budget / 100)] : "Measuring GPU performance..."; _textUI.text = "Pix2Pix refresh rate: " + (60 * _budget / 1000).ToString("0.0") + " Hz (" + perf + ")"; }